apply
注意 -auto-approve参数的使用:
terraform apply -auto-approve
console
Terraform console可以提供一种命令行交互方式来检查项目状态,查看表达式的值等。比如,运行terraform console之后:
> "Current time is ${timestamp()}"
"Current time is 2022-09-30T22:06:29Z"
> replace("Hello world", "world", "terraform")
"Hello terraform"
destroy
这个命令可以删除整个stack,或者删除指定的资源:
> terraform destroy
> terraform destroy RESOURCE_NAME
但要注意:如果通过命令行删除某个特定资源,将会导致terraform定义文件和实际资源的不匹配。尤其在一个团队中使用Terraform时,要尽量避免使用这个命令,而是使用terraform apply,来保持定义文件和实际资源的一致。
fmt
可以使用这个命令来格式化terraform的源文件:
terraform fmt
graph
这个命令用于输出所有资源间的依赖关系。
terraform graph
将输出重定向并生成svg格式的依赖图:
terraform graph | dot -Tsvg > graph.svg
output
比如:定义了如下的output:
output "server_public_ip" {
value = aws_eip.myip.public_ip
}
运行terraform output可以输出所有相关的输出信息:
> terraform output
server_public_ip = xx.xxx.xxx.xxx
只输出一个变量值:
terraform output server_public_ip
providers
这个命令可以输出所有被使用的providers。
refresh
terraform refresh的作用就是重新获取资源的相关信息,并输出output中定义的所有信息.
show
这个命令可以显示所有资源的详细信息。
terraform show
也可以以JSON格式来输出:
terraform show -json
state
state list
terraform state list
列举出Terraform中所有资源的状态信息。
state show
terraform state show RESOURCE_ID
显示某个资源的详细信息。这个命令非常有用:在创建AWS资源之后,无需登录控制台就能获取一些有用信息,比如服务器的public IP。
–target参数
当只想针对某个资源运行terraform相关命令时,可以使用–target参数,比如:
terraform destroy -target aws_instance.nginx-instance
将只会删除名字为nginx-instance的AWS VM。
或者单独创建一个资源:
terraform apply -target aws_instance.nginx-instance
validate
可以运行terraform validate来验证terraform文件的合法性。