先週に引き続きMisoca開発の黒曜です。
ほたるちゃん のCDデビューが決まったので、来年春が楽しみです。
🗓アドベントカレンダー
昨年に続き、今年もアドベントカレンダーをやってます。
今年は弥生株式会社とALTOAとの合同開催になってます。このブログでは見慣れないアイコンがいっぱいありますね。
カレンダーを立てたのは自分ですが、余ったところに入ろうと思っていたらあっという間に全部埋まっていました。
そんなわけで自分は不参加です。
ただ各人珠玉の非業務ネタで攻めていて開発ブログには誰も書いてなかったので、宣伝がてらこの記事を書いています。
もう半分終わってしまっていますが、まだ半分も残ってるということで…
どの記事も素晴らしいので、ぜひご一読ください。
個人的おすすめは、めっちゃバズって500はてブを超えたマルチカーソルを使わないVSCodeはただのVSCodeだ!です。
小ネタ: Terraformの結果をデスクトップ通知する
宣伝だけだと寂しいのでちょっとした小ネタを。
MisocaではTerraformを使ってAWSの設定をコード化して管理しています。
ただ terraform plan
や terraform apply
は地味に時間がかかり、ぼーっと待つには長いのですが他の作業をやると結果確認を忘れてしまったりします。
🖥terminal-notifier
そこでterminal-notifierを使って、planやapplyが完了したらデスクトップ通知を送るようにしました。
ついでにterraform-landscapeを使ってplanの結果を整形し見やすくしています。
結果、以下のようなエイリアスでわりと使い勝手良く利用できています。
alias tplan='terraform plan | bundle exec landscape | tee /tmp/plan.log; cat /tmp/plan.log | grep -E "^Plan|^No" | xargs -I{} terminal-notifier -title "Terraform Plan Finished" -message "{}" ' alias tapply='terraform apply -auto-approve | tee /tmp/apply.log; cat /tmp/apply.log | grep "^Apply" | xargs -I{} terminal-notifier -title "Terraform Apply Finished" -message "{}"'
ザ・ワンライナーですね。
なおこのスクリプトではlandscapeをbundler経由で入れている前提になっていますが、brewで入れているなら bundle exec
は不要です。
実行例
実際にtplan
して、変更がないとこんな感じの通知が来ます。
一方で変更があるとこんな感じ。
コンソールのほうを見ると、以下のように差分が確認できます。
今回はThorタスクを実行するRunCommand用SSM Documentの更新で、選択できるタスク名が増えたdiffになっています。*1
CLANNAD:kokuyou% tplan ~ module.ssm_documents.aws_ssm_document.RunThorTask content: "type": "String", "allowedValues": [ "list", + "test:example" ] }, "executionTimeout": { "type": "String", "default": "3600", Plan: 0 to add, 1 to change, 0 to destroy.
問題なさそうなのでtapply
すると以下のような通知が来ます。*2
[0m
が残念感ありますが、まぁ実用上問題はないでしょう。
こうしてterraformの実行中はちょっとした他作業をしつつ、コマンドが完了したら即結果を確認、そのまま後続作業に取り掛かれるようになりました。
terminal-notifierは工夫次第で色々使えそうなので、ぜひお試しください。
📢宣伝
Misocaではアドベントカレンダーの記事を書きたい、もしくは参加しそびれて腹いせにワンライナーを書きたいエンジニアを募集しています。