🚀
Terraformでスクリプトを実行する方法まとめ
スクラップにまとめてたのが、検索上位にきてたので記事化しました👍
- 一度だけの実行で良い場合
- 複数回の実行が必要な場合
でやり方が変わります。
一度だけの実行で良い場合
provisioner
を利用する
resource "aws_instance" "web" {
# ...
provisioner "local-exec" {
command = "echo The server's IP address is ${self.private_ip}"
}
}
特徴
- デフォルトは初回のリソース作成時の作成完了後に動作する
- オプション指定
when=destroy
で削除時の削除直前に動作する - リソースの更新時に実行するのは無理そう
複数回の実行が必要な場合
null_resource
を使う
resource "null_resource" "run_script" {
triggers = {
ここに更新契機のパラメータ
}
provisioner "local-exec" {
command = "スクリプト実行のためのコマンド"
}
}
特徴
- triggerに指定したパラメータの更新タイミングで毎回実行できる
- sha256関数と組み合わせるとファイル更新時に走らせる実装も可能
Discussion