はじめに
terraform apply
の実行は、環境の規模や設定によっては数分から数十分かかることがあります。その間、別の作業をしていて、Terraform の処理が終わったことに気付かないこともあるでしょう。そこで、実行が完了したことを分かりやすく通知する方法を5種類紹介します。
方法 1: say
コマンドを使う(Mac向け)
Mac ユーザーなら say
コマンドを使うことで、Terraform の処理完了時に音声で通知できます。
terraform apply ; say 'Terraform の適用が完了しました'
この say
コマンドは、指定した文章を音声で読み上げてくれるので、手を離して別の作業をしていても Terraform の終了に気付きやすくなります。
say
コマンドのカスタマイズ
say
にはさまざまなオプションがあります。
- 音声の変更(例えば、
Kyoko
にする):
terraform apply ; say -v Kyoko 'Terraform の適用が完了しました'
音声の一覧は say -v '?'
で確認できます。
- 音量や速度の調整:
terraform apply ; say -r 200 -v Kyoko 'Terraform の適用が完了しました'
-r
オプションで速度(words per minute)を変更できます。
方法 2: echo
と BEL(ビープ音)を使う(Linux / Mac)
Mac 以外の環境で say
が使えない場合、echo
コマンドを利用してビープ音を鳴らすこともできます。
terraform apply ; echo -e "x07x07x07"
これは ASCII の BEL 文字(x07
)を出力することで、PC のスピーカーからビープ音を鳴らします。複数回鳴らすことで気付きやすくなります。
方法 3: afplay
で MP3 を鳴らす(Mac向け)
Mac では afplay
コマンドを使って音楽ファイルや効果音を再生できます。たとえば、指定した MP3 ファイルを Terraform の終了時に鳴らすことも可能です。
terraform apply ; afplay ~/Sounds/notification.mp3
自分の好きな音楽や効果音を設定しておけば、より楽しく通知を受け取れるでしょう。
方法 4: notify-send
でデスクトップ通知を送る(Linux向け)
Linux では notify-send
コマンドを使うことで、デスクトップ通知を送ることができます。
terraform apply ; notify-send 'Terraform 完了' 'Terraform の実行が終わりました'
これは GUI 環境でポップアップ通知を出すのに便利です。
方法 5: osascript
で macOS の通知センターに通知を出す(Mac向け)
Mac で osascript
を使うと、通知センターにメッセージを送ることができます。
terraform apply ; osascript -e 'display notification "Terraform の実行が終わりました" with title "Terraform 完了"'
デスクトップ通知が出るため、音を鳴らさずに視覚的に通知を受け取りたい場合に便利です。
方法 6: Slack へ通知を送る
Terraform の完了通知を Slack に送ることもできます。Webhook URL を設定しておけば、実行後にメッセージを送信できます。
curl -X POST -H 'Content-type: application/json' –data '{"text":"Terraform 実行完了"}' https://hooks.slack.com/services/YOUR/WEBHOOK/URL
これを Terraform の実行後に実行することで、スマートフォンやチームメンバーにも通知できます。
Webhook自体はslackでは非推奨なのでよりよい代替の方法を知ってる方がいればおしらえてもらえればとおもいます。
まとめ
Terraform の実行が終わったことを素早く知るために、以下の方法を説明しました。
- 音声通知:
say
コマンド(Mac) - ビープ音:
echo -e "x07x07x07"
(Mac/Linux) - 音楽再生:
afplay
(Mac) - デスクトップ通知:
notify-send
(Linux)、osascript
(Mac) - Slack通知: Webhook を使う
環境や好みに応じて適した方法を選び、Terraform の実行状況をより快適にできるかとおもいます。
CDツールにくみこめよ、というはなしもあるかもしれませんが、まぁ、それはそれで。。。
Windows版の方法があればおしえてもらえると嬉しいです。
ではでは。