只需执行特定目录下的资源才能运行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进行指定路径执行特定文件夹下的操作!

bannerAds