Tech Beans

Web企業で働くエンジニアのBlog


RundeckからGmailを使ってメール送信する

Rundeckをジョブスケジューラとして使い始めて、メールをGmail経由で送れるようにした。 OSはCentOS7だが、他でも変わらないはず。

Rundeckのインストール

インストールは難しくない。yumで入るはず。 起動もsystemctl start rundeckd.serviceでできる。

詳細は割愛

設定

※以下、rundeckの設定は/etc/rundeck配下にあるものとしています。

公式ドキュメントには一応設定はある。 http://rundeck.org/docs/administration/email-settings.html localhostsmtpサーバーを立てている場合は

grails.mail.host=localhost
grails.mail.port=25

でいいらしいが、今回はSSL認証が必要はため別の手段が必要。

rundec-config.groovy

まずはより詳細な設定ができるように設定ファイルをGroovy形式のファイルに置き換える。

rundeck-config.propertiesと同じディレクトリにrundeck-config.groovyを作成する。

デフォルトのpropertiesは使わないので適当にリネームしておく。

  $ mv rundeck-config.properties rundeck-config.propertties.bak
  $ touch rundeck-config.groovy

基本設定はrundeck-config.propertiesと同じになるようにする。 それにメール設定を以下のように設定する。

// #### デフォルト設定 ####
loglevel.default="INFO"
rdeck.base="/var/lib/rundeck"
rss.enabled=false
dataSource {
        dbCreate="update"
        url="jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;MVCC=true;TRACE_LEVEL_FILE=4"
}

grails {
        serverURL="http://localhost:4440"
        // #### Mail 設定 ####
        mail {
                host="smtp.gmail.com"
                port = 465
                username="XXXXXX@gmail.com"
                password="XXXXXXX"
                props = ["mail.smtp.auth":"true",
                      "mail.smtp.socketFactory.port":"465",
                      "mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory",
                      "mail.smtp.socketFactory.fallback":"false"]
        }
}

grails.mail以下に上のようにGmail用の設定を記述すればOK.

起動オプション変更

上記で作成した.groovyファイルを読み込んで起動するように、 CONFIG_DIR/profile ファイルに以下の行を追加

# Add to load custom config
RDECK_JVM="$RDECK_JVM -Drundeck.config.location=/etc/rundeck/rundeck-config.groovy"

systemctl restart rundeckd.serviceでちゃんと再起動するか確認。 エラーが出る場合はgroovyファイルに間違いがないかどうか確認する。

ジョブ作成

メールは送信できるようになっているはずなので、あとはNotificationにメールを設定するだけだ。 f:id:soy_msk:20150917222026p:plain

うーん、それにしてもRundeckが相当DiskIO食ってるんだけどなんでだろう。。IO waitかなり出ている。。