Terraform教程 - 常用命令总结


apply

注意 -auto-approve参数的使用:

bash
terraform apply -auto-approve

console

Terraform console可以提供一种命令行交互方式来检查项目状态,查看表达式的值等。比如,运行terraform console之后:

bash
> "Current time is ${timestamp()}"
"Current time is 2022-09-30T22:06:29Z"
> replace("Hello world", "world", "terraform")
"Hello terraform"

destroy

这个命令可以删除整个stack,或者删除指定的资源:

bash
> terraform destroy
> terraform destroy RESOURCE_NAME

但要注意:如果通过命令行删除某个特定资源,将会导致terraform定义文件和实际资源的不匹配。尤其在一个团队中使用Terraform时,要尽量避免使用这个命令,而是使用terraform apply,来保持定义文件和实际资源的一致

fmt

可以使用这个命令来格式化terraform的源文件:

bash
terraform fmt

graph

这个命令用于输出所有资源间的依赖关系。

bash
terraform graph

将输出重定向并生成svg格式的依赖图:

bash
terraform graph | dot -Tsvg > graph.svg

output

比如:定义了如下的output:

terraform
output "server_public_ip" {
  value = aws_eip.myip.public_ip
}

运行terraform output可以输出所有相关的输出信息:

bash
> terraform output
server_public_ip = xx.xxx.xxx.xxx

只输出一个变量值:

bash
terraform output server_public_ip

providers

这个命令可以输出所有被使用的providers。

refresh

terraform refresh的作用就是重新获取资源的相关信息,并输出output中定义的所有信息.

show

这个命令可以显示所有资源的详细信息。

bash
terraform show

也可以以JSON格式来输出:

bash
terraform show -json

state

state list

none
terraform state list

列举出Terraform中所有资源的状态信息。

state show

terraform
terraform state show RESOURCE_ID

显示某个资源的详细信息。这个命令非常有用:在创建AWS资源之后,无需登录控制台就能获取一些有用信息,比如服务器的public IP。

–target参数

当只想针对某个资源运行terraform相关命令时,可以使用–target参数,比如:

bash
terraform destroy -target aws_instance.nginx-instance

将只会删除名字为nginx-instance的AWS VM。

或者单独创建一个资源:

bash
terraform apply -target aws_instance.nginx-instance

validate

可以运行terraform validate来验证terraform文件的合法性。


文章作者: 逻思
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 逻思 !