【Terraform命令一】

Terraform命令

  • 一、常用命令
    • [1.1 Backend](#1.1 Backend)
    • [1.2 Terraform init](#1.2 Terraform init)
    • [1.3 Terraform plan](#1.3 Terraform plan)
    • [1.4 Terraform apply](#1.4 Terraform apply)
    • [1.5 Terraform destroy](#1.5 Terraform destroy)
    • [1.6 Terraform taint](#1.6 Terraform taint)
    • [1.7 terraform force-unlock](#1.7 terraform force-unlock)
  • 总结

一、常用命令

1.1 Backend

txt 复制代码
团队合作:后端可以远程存储其状态,并使用锁保护该状态以防止损坏。某些后端(例如 Terraform Cloud)甚至会自动存储所有状态修订的历史记录。将重要文件置于安全位置:根据需要从后端检索状态,并且仅将其存储在内存中。如果您使用的是后端(例如 Amazon S3),则状态一直保持不变的唯一位置是S3。

远程操作:对于较大的基础架构或某些更改, terraform apply 可能需要很长时间。一些后端支持远程操作,这些操作使该操作可以远程执行。然后,您可以关闭计算机,然后操作仍将完成。配合远程状态存储和上方锁定,这也有助于团队环境。

简单理解:就是在团队协助时,Backdend可以通过远程存储和管理状态文件,可以提高团队协作效率。把之前的tfstate文件放到远程供团队使用。
bash 复制代码
terraform {
    required_version = ">= 0.12"
    backend "s3" {
        bucket = "" //S3 桶用于存储状态文件
        dynamodb_table = "" //用于状态锁定和一致性的DynamoDB表的名称。该表必须有一个名为一个主键LockID与类型string。如果未配置,则将禁用状态锁定。
        key = "" // state 文件key路径和名称,包含后缀名
        encrypt = true
    }
}

1.2 Terraform init

  1. 初始化工作目录:terraform init 命令用于初始化 Terraform 的工作目录。它会查找当前目录下的 .tf
    配置文件,并根据这些配置文件中的配置来初始化工作环境。
  2. 安装依赖:
bash 复制代码
   Provider 插件安装:Terraform需要与各种云服务和基础设施提供商进行交互,这些交互是通过所谓的"Provider"插件来实现的。terraform init会自动下载和安装配置文件中声明的所有 Provider 插件。
bash 复制代码
Module 安装:如果配置文件中有 module 块配置,terraform init 也会将这些模块及其依赖项安装到本地。
  1. 初始化 Backend:如果配置文件中定义了 Backend(远程状态存储),terraform init 还会进行 Backend的初始化,建立与远程存储的连接,并可能迁移本地状态到远程存储

1.3 Terraform plan

它主要负责生成一个执行计划,该计划描述了如何将当前的基础设施状态转变为用户所期望的状态。

  • 读取配置:Terraform 读取 Terraform 配置文件和任何相关的状态文件(如果已存在)。
  • 生成计划:基于配置和当前状态,Terraform 生成一个执行计划,该计划详细说明了将进行的更改。
  • 预览输出:Terraform 将执行计划的详细信息输出到控制台,以便用户预览

1.4 Terraform apply

用于将 Terraform 配置文件中定义的基础设施更改应用到实际环境中。当你运行 terraform plan 并确认计划中的更改是你所期望的之后,你可以使用 terraform apply 命令来实际执行这些更改。

工作流程:

  1. 读取配置:Terraform 首先读取 .tf 配置文件和任何相关的状态文件(如果已存在)。
  2. 生成计划(如果尚未生成):如果尚未运行 terraform plan,Terraform 会根据配置文件和当前状态生成一个执行计划。
  3. 用户确认:在显示计划之前,Terraform 会提示用户确认是否要应用更改。这通常包括一个简短的摘要和提示,询问用户是否要继续。
  4. 应用更改:一旦用户确认,Terraform 就会开始应用计划中的更改。这可能包括创建新资源、更新现有资源或销毁不再需要的资源。

1.5 Terraform destroy

用于销毁通过 Terraform 创建的基础设施资源。

销毁资源:Terraform destroy 命令会根据 Terraform 配置文件中的定义,销毁所有或指定的基础设施资源。

1.6 Terraform taint

用于给已存在的资源实例标记为"污点"(tainted)。当一个资源被标记为污点后,Terraform 会在下一次 terraform apply 命令执行时,销毁该资源并重新创建它。这个命令在需要强制重新创建资源时非常有用,比如当资源的状态与配置文件不一致,或者资源无法被正常更新时。

使用场景:

  • 资源状态不一致:当资源的状态与 Terraform 配置文件中的定义不一致时,可以使用 terraform taint
    命令来强制重新创建该资源。
  • 资源更新失败:有时,由于某些原因(如依赖关系问题、权限问题等),Terraform 无法正常更新资源。在这种情况下,可以使用terraform taint 命令来销毁并重新创建资源。

1.7 terraform force-unlock

手动解锁已定义的配置文件状态,这个只有在定义backend时,才可使用。

总结

主要对Terraform的各种命令进行解释

相关推荐
菜鸡且互啄691 小时前
在线教育平台,easyexcel使用案例
java·开发语言
八月林城1 小时前
JAVA导出数据库字典到Excel
java·数据库·excel
夏花里的尘埃1 小时前
vue3实现echarts——小demo
前端·vue.js·echarts
努力学习的木子2 小时前
uniapp如何隐藏默认的页面头部导航栏,uniapp开发小程序如何隐藏默认的页面头部导航栏
前端·小程序·uni-app
浅念同学3 小时前
算法-常见数据结构设计
java·数据结构·算法
java小郭5 小时前
html的浮动作用详解
前端·html
水星记_5 小时前
echarts-wordcloud:打造个性化词云库
前端·vue
杰哥在此5 小时前
Java面试题:讨论持续集成/持续部署的重要性,并描述如何在项目中实施CI/CD流程
java·开发语言·python·面试·编程
强迫老板HelloWord5 小时前
前端JS特效第22波:jQuery滑动手风琴内容切换特效
前端·javascript·jquery
咖啡煮码5 小时前
深入剖析Tomcat(十五、十六) 关闭钩子,保证Tomcat的正常关闭
java·tomcat