Terraform – 命令行

  1. 下载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

Loading

Facebook评论