Terraform命令行又称Terraform CLI,用来跟Terraform进行交互的命令行接口。
我们可以通过运行terraform来查看支持的所有命令
Terraform init
用法:terraform init [options]
具体有哪些可选项,可通过terraform init -help查看
这个命令主要是对当前目录下的terraform配置文件进行初始化,主要会执行下面这些步骤
- 拷贝source module: 因为该命令有个可选参数-from-module=SOURCE, 所以这个步骤主要针对设置了该参数的情况,将source module拷贝到当前文件夹
- 初始化Backend
- 子module安装:会遍历配置文件,查找是否存在module块配置,如果存在,则将该module块的子module进行安装
- Plugin(插件)安装:查找配置文件中的所有Provider配置,然后将provider从公有仓库或者私有仓库中下载并缓存到本地的.terraform文件夹下
Terraform validate
用法: terraform validate [options]
具体有哪些可选项,可通过terraform validate -help查看
该命令用于验证指定目录下的所有配置文件是否合法。
Terraform plan
用法:terraform plan [options]
具体有哪些可选项,可通过terraform plan -help查看
这个命令会创建一个执行计划,这个命令主要会展示本次执行相比上次执行对于基础设施架构的改动。主要执行以下步骤:
1.获取基础设施的当前执行状态
2.将当前执行状态与准备执行状态的对比
3.对此次基础设施执行较当前执行状态的改动进行建议。
Terraform apply
用法:terraform apply [options] [plan file]
具体有哪些可选项,可通过terraform apply -help查看
这个命令会将terraform plan中建议的基础设施改动进行真正的执行。 该命令主要有2中用法,
一种是不传任何参数,即terraform apply,这样会创建一个新的计划并对他进行执行。
另一种是传入一个文件,即terraform apply plan-file, 这样会根据plan-file的计划进行执行
Terraform destroy
用法: terraform destroy [options]
具体有哪些可选项,可通过terraform destroy -help查看
该命令会将当前文件夹下配置文件管理的远程对象全部清除
terraform state list
用法: terraform state list [options] [address...]
具体有哪些可选项,可通过terraform state list -help查看
该命令列出状态文件的所有资源,如果指定了某个ip,则列出匹配ip成功的所有资源列表