apply
注意 -auto-approve参数的使用:
bash
terraform apply -auto-approveconsole
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 fmtgraph
这个命令用于输出所有资源间的依赖关系。
bash
terraform graph将输出重定向并生成svg格式的依赖图:
bash
terraform graph | dot -Tsvg > graph.svgoutput
比如:定义了如下的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_ipproviders
这个命令可以输出所有被使用的providers。
refresh
terraform refresh的作用就是重新获取资源的相关信息,并输出output中定义的所有信息.
show
这个命令可以显示所有资源的详细信息。
bash
terraform show也可以以JSON格式来输出:
bash
terraform show -jsonstate
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-instancevalidate
可以运行terraform validate来验证terraform文件的合法性。