只需执行特定目录下的资源才能运行terraform的方法
想做的事情
我正在将AWS资源的tf文件存储在多个文件夹中,但我只想在其中一个文件夹下执行terraform plan和terraform apply。
目录结构
大致上来说,
在工作中,AWS的资源会在开发环境和生产环境中分开,tf文件会按文件夹存放。
我想通过路径指定来执行terraform plan和terraform apply来管理每个资源。
root
┣━ dev
┃ ┗━ env1
┃ ┗━ s3
┃ ┗━ s3.tf
┃ ┗━ env2
┃ ┗━ s3
┃ ┗━ s3.tf
┣━ prod
┃ ┗━ env1
┃ ┗━ s3
┃ ┗━ s3.tf
方法
请添加chdir选项
请在root目录下加入-chdir选项。
terraform -chdir=dev/env1/s3 plan
terraform -chdir=dev/env1/s3 apply
terraform命令本来只能读取位于相同文件夹层级内的tf文件,但可以通过指定路径来执行,从而可以对位于其他位置的tf文件进行操作。
如果只想在特定的地方执行,-chdir选项非常方便!
进一步将其转化为Shell脚本。
这次是在工作期间,需要将命令转化为Shell脚本,并按顺序执行每个位置上的tf文件,所以我创建了这个Shell脚本!
terraform -chdir=$1 plan
terraform -chdir=$1 apply
执行时,只需要将路径作为参数传递就可以了。
sh terraform.sh dev/env1/s3
结束
本次我们采用了一个简短的文章来结束!我还学会了使用Terraform进行指定路径执行特定文件夹下的操作!