2
2

特定のディレクトリ配下のリソースのみterraformを実行する方法

Last updated at Posted at 2023-10-13

やりたいこと

・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もパス指定で特定のフォルダ配下のみ実行できるのを勉強しました!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2