Pocket

メーリークリスマス!

まずはこれを見てほしい!

以下、Orbsを使わず旧UISlack連携をしてしまうと上記のように見にくいし、エラーが出たときはメンションを飛ばすなどできません。Orbsを使えば様々なカスタマイズが可能になります。というわけで今回個人で運用しているDigitalOcean x Terraform CIを修正してみました。Terraform CIに関しては以下参考にできればと思います。

そもそも旧UIから以下の設定ってどこでやるのだろうか…むしろ辿り着けない!?

https://circleci.com/docs/ja/2.0/notifications/

[DigitalOcean]CircleCIでTerraformのCI/CD環境を実装してみた


■circleci/slack@3.4.2

https://circleci.com/developer/ja/orbs/orb/circleci/slack?version=3.4.2

最新はv4.1.4になりますが、4系だとカスタムが増えてより細かく通知できるのですが、そこまで工数かけたくないため、v3.4.2でシンプルに作ってみました。今回は notifystatus を使えばOKですね。


■config.yml

まずはversion 2.1必須になります。 3行目 でslackのバージョンを指定しましょう。あとはJobs配下に指定するだけなので、 terraform validate から通知させてみます。TerraformのイメージはAlpine Linuxを使っていることから 47行目bash、curl、jqをインストールしないと最後のSlack Notificationで通知できません。messageにはCircleCIの既存で設定されているユーザ名、ブランチ名の環境変数を指定することで出力可能になります。

56行目 では slack/statusのfail_only によってエラーが起きたらメンション付きで@hereにしました。slackのユーザ名は個人情報なのでGitHubでは管理したくないので…といっても自分は既にバレてるな。

最後に 58行目slack/notify で成功したらSlack通知させるようにしました。これで通知したいチャンネルをミュートしても誰でも気づくはずだと思います。webhookは事前に環境変数を登録しましょう。ではpushとマージしてみましょう!


■Slack

  • Other project

他のプロジェクトにも設定してみましたが、エラーを出すとちゃんとメンション来ているのでOK!


■まとめ

Orbsめちゃくちゃ見やすくなったので良き!イカしてるぜ!これでエラー出たときのみCircleCIのコンソール画面で確認してデバッグするだけとなりました。あとでv4でも作ってみよう!またブログします!

Pocket

カテゴリー: CircleCI

adachin

1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください