やりたいこと
・AWSリソースのtfファイルを複数のフォルダで分けて格納しているが、あるフォルダ配下のものだけ、terraform planとterraform applyを実行したい
ディレクトリ構成
ざっくりしたイメージですが、
業務中AWSのリソースが開発環境や本番環境で分かれて、リソースのtfファイルがフォルダ別で格納されている
それぞれのリソースをパス指定で、terraform planとterraform applyを実行したい
qiita.rb
root
┣━ dev
┃ ┗━ env1
┃ ┗━ s3
┃ ┗━ s3.tf
┃ ┗━ env2
┃ ┗━ s3
┃ ┗━ s3.tf
┣━ prod
┃ ┗━ env1
┃ ┗━ s3
┃ ┗━ s3.tf
やり方
①-chdirオプションを入れてください
rootにいる状態で、-chdirオプションを入れてください~
terraform plan
terraform -chdir=dev/env1/s3 plan
terraform apply
terraform -chdir=dev/env1/s3 apply
terraformコマンドは本来同じフォルダ階層内にあるtfファイルでしか読み込めないが、パス指定して実行するとほかの場所にあるtfファイルに対して実行できるようになった。
特定の場所のみ実行したい場合、-chdirオプションが便利ですね!
②さらにシェルスクリプトにする
今回は業務中で、コマンドをシェルスクリプトにして、各場所にあるtfファイルを順番で実行する必要があるので、このようにシェルスクリプトを作った!
terraform.sh
terraform -chdir=$1 plan
terraform -chdir=$1 apply
実行するときは、こんな感じでパスを引数として渡してあげればいい~
sh terraform.sh dev/env1/s3
終わりに
今回は短い記事で終わりました!
terraformもパス指定で特定のフォルダ配下のみ実行できるのを勉強しました!