【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的各种命令进行解释

相关推荐
louisgeek2 分钟前
Java 位运算
java
hweiyu0044 分钟前
Maven 私库
java·maven
Boilermaker19921 小时前
【Java EE】SpringIoC
前端·数据库·spring
Super Rookie1 小时前
Spring Boot 企业项目技术选型
java·spring boot·后端
写不出来就跑路1 小时前
Spring Security架构与实战全解析
java·spring·架构
中微子1 小时前
JavaScript 防抖与节流:从原理到实践的完整指南
前端·javascript
天天向上10241 小时前
Vue 配置打包后可编辑的变量
前端·javascript·vue.js
芬兰y2 小时前
VUE 带有搜索功能的穿梭框(简单demo)
前端·javascript·vue.js
ZeroNews内网穿透2 小时前
服装零售企业跨区域运营难题破解方案
java·大数据·运维·服务器·数据库·tcp/ip·零售
好果不榨汁2 小时前
qiankun 路由选择不同模式如何书写不同的配置
前端·vue.js