Chonaso's Commentary

InternetやIT技術などについて知ったこと、試したこと、考えたことを書いていきます。

RundeckのSlack通知テンプレート更新

Rundeckはシンプルなジョブコントローラーですがプラグインによる機能拡張が可能です。

Rundeckのジョブ実行に関する通知をSlackへ飛ばすには公式GitHubにあるslack-incoming-webhook-pluginというプラグインを使用します。

インストール自体はJARファイルを設置するだけなので簡単ですが、通知内容のカスタマイズができません。

通知の内容自体は汎用性が高いのでそのままでも使えるのですが、メンションを付けたいなどの要求にはテンプレートをカスタマイズする必要があります。

このプラグインでの通知内容はFreeMarkerのテンプレートで定義されており、かつては特定の場所にテンプレートファイルを置くことで通知内容をカスタマイズできるようになっていたのですが、あるバージョンから外部テンプレート参照の機能がオミットされています。


というわけで、少々強引ではありますがJARパッケージ内にあるテンプレートファイルを上書きすることで通知内容をカスタマイズすることができました。

JARパッケージを直接変更するため、実施の際には各自の責任において実施してください。

  • 動作環境
    • CentOS7
    • rundeck-3.1.2
    • slack-incoming-webhook-plugin v1.2.5
# 作業用ディレクトリ作成
sudo -u rundeck mkdir /etc/rundeck/templates

# JARファイルからテンプレートファイルを抽出
cd /etc/rundeck/templates
sudo -u rundeck jar -xvf /var/lib/rundeck/libext/slack-incoming-webhook-plugin-X.X.X.jar templates/slack-incoming-message.ftl

# テンプレートを編集
sudo -u rundeck vi slack-incoming-message.ftl

# JARファイル内のテンプレートファイルを上書き
sudo -u rundeck jar -uf /var/lib/rundeck/libext/slack-incoming-webhook-plugin-X.X.X.jar -C /etc/rundeck templates/slack-incoming-message.ftl

Rundeckdの再起動は不要で即反映となります。