Terraform – 命令行
- 下载Provider的依赖包
terraform init
2. 根据以下的声明是,使用的terraform版本必须是1.0.0或以上,aws的版本是任何5.0的版本,但是由于provider的版本更新会比较快,所以可以使用以下的命令行以便更新provider在本地的使用版本
terraform {
required_version = ">= 1.0.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
terraform init -upgrade
结果如下:

3. 对比当前配置文件、状态文件和实际云上资源,生成一份执行计划,展示将要创建、更新或删除的资源。 此命令不会实际对资源进行任何修改,便于用户确认预期的变更。
terraform plan
4. 这个是创建资源的命令。这个命令会执行一次 terraform plan, 让你看一下再次确认,然后需要输入yes才能执行。
terraform apply #需要输入yes才能执行
terraform apply -auto-approve #无需输入yes确认,直接执行了
5. 删除资源
terraform destroy #需要输入yes才能执行
terraform destroy -auto-approve #无需输入yes确认,直接执行了
6. 检查配置文件的语法和基本逻辑是否正确
terraform validate
7. 测试运行terraform的function功能
terraform console
8. 格式化hcl代码的排版
terraform fmt
9. 在 Terraform 0.15.2 及之后的版本中,terraform taint
命令已被弃用,不再推荐使用。取而代之的是在执行 Terraform 操作时使用 -replace
选项 replace是功能就是destroy了再执行apply,意思就是摧毁了再重新创建新的
terraform apply -replace="aws_instance.example1" -replace="aws_instance.example2"
10. terraform graph
是 Terraform 提供的一个命令,用于生成 Terraform 资源之间的依赖关系图,帮助你理解资源的创建顺序以及它们之间的依赖关系。
terraform graph
更多详细文章: https://www.pangzai.win/terraform-graph/
11. terraform plan out 输出计划文件,把计划冻结
terraform plan -out=tfplan.out
更多详细文章: https://www.pangzai.win/terraform-plan-out%e7%9a%84%e4%bd%bf%e7%94%a8/
12. 指定特定的output设定,然后输出output值
variable "servers" {
default = [
{ id = "server-1", name = "web-01" },
{ id = "server-2", name = "web-02" }
]
}
output "server_ids" {
value = var.servers[*].id
}
terraform output server_ids

Facebook评论