Rundeck Config・ジョブ通知・Mysql の設定編
前回はRundeckをローカルで動かすまでのメモを書いた。
Rundeck 基礎編 インストールからジョブ実行までのメモ - 僕とコードとブルーハワイ
今回は、実際に使用するときに設定する色々なことをメモしていく。
環境
Ubuntu 14.04
Rundeckバージョン:2.6.2
Rundeckの設定
公式ページを見ながら設定していく。
Configuration
Config設定が置いてある場所と構成は以下の通り。
今回は最低限の設定だけする。いじるのはframework.properties、project.properties、profileくらい。
omega:~$ sudo tree /etc/rundeck/ /etc/rundeck/ ├── admin.aclpolicy ├── apitoken.aclpolicy ├── framework.properties ├── jaas-loginmodule.conf ├── log4j.properties ├── profile ├── project.properties ├── realm.properties ├── rundeck-config.properties └── ssl └── ssl.properties
framework.properties
Rundeckのコア部分の設定を定義するファイル。
ホスト名やBaseURL、Login User/Passwdなど。
# ---------------------------------------------------------------- # Rundeck server connection information # ---------------------------------------------------------------- framework.server.name = rundeck-example.com framework.server.hostname = rundeck-example.com framework.server.port = 4440 framework.server.url = http://localhost:4440 # 自鯖内で経由するのでlocalhost # Username/password used by CLI tools. framework.server.username = omega framework.server.password = agemo :
rundeck-config.properties
データベース、logレベル、メール通知の設定などをするファイル。
#loglevel.default is the default log level for jobs: ERROR,WARN,INFO,VERBOSE,DEBUG loglevel.default=INFO rdeck.base=/etc/rundeck #rss.enabled if set to true enables RSS feeds that are public (non-authenticated) rss.enabled=false grails.serverURL=http://rundeck-example.com dataSource.dbCreate=update dataSource.url=jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;MVCC=true;TRACE_LEVEL_FILE=4
上記の設定をしてRundeckを再起動すると、設定ファイルが反映される。
http://rundeck-example.com にアクセスしてログイン画面になったらOK。
ジョブ通知の設定
Rundeckではジョブのステータス(Success, Failed, Start)で通知を飛ばせる仕組みがある。
今回はSlack通知と Email通知の設定方法を書いていく。
Slackに通知を飛ばす
前回のRundeckメモに書いたけどもう一回書く。
準備はrundeck-slack-incoming-webhook-pluginの公式ページからrundeck-slack-incoming-webhook-plugin-0.5.jar(この記事を書いた時点での最新版) をダウンロードしてきて、/var/lib/rundeck/libext/配下に設置して、Rundeckを再起動するだけ。
$ sudo mv rundeck-slack-incoming-webhook-plugin-0.5.jar /var/lib/rundeck/libext/
再起動後にWebUIからジョブの作成ページを見てみると、Send Notification?の欄にSlack Incoming WebHookが追加されている。
SlackのIncoming WebHooksからWebhook URLを取得してフォームに入力してあげるだけでOK。
簡単なジョブを実行して、Slackへ実行結果が送信されていることを確認。
実行結果ページへのリンクも貼られているのも便利。
メールで通知する
Email Settings によると、SSL越しに接続したりと高度な設定をしたい場合はrundeck-config.propertiesではなくrundeck-config.groovyに記述しましょうとのこと。
/etc/rundeck/にrundeck-config.groovyを作成する。
今回はGmailのSMTPを使う(楽だから)。
中身は以下のように書くかんじ。
loglevel.default="INFO" rdeck.base="/var/lib/rundeck" rss.enabled="false" grails { serverURL="http://rundeck-example.com" mail { host="smtp.gmail.com" port = 465 username="example@gmail.com" password="example" 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.default.from = "example@gmail.com" dataSource.url = "jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;MVCC=true;TRACE_LEVEL_FILE=4" dataSource.dbCreate = "update" rundeck.projectsStorageType = "db"
Goovyファイルを書くのが初めてだったのでたまに文法エラーで時間食った。ドキュメントをよく読もう。
Groovy Language Documentation
デフォルトではrundeck-config.propertiesを読み込むようになっているので、rundeck-config.groovyを読み込ませるように以下の1行を/etc/rundeck/profileへ追記する。
RDECK_JVM='$RDECK_JVM -Drundeck.config.location=/etc/rundeck/rundeck-config.groovy'"
Rundekを再起動後、WebUIからジョブの作成ページのSend Notification?をYesにして、Send EmailのTo、Subjectを入力すればメール通知の設定は完了。
Attach output logを選択すると実行の過程で出力されたlogのtxtファイルがメールに添付されてくる。
Mysqlを使用するための設定
デフォルトでは H2 Database が使用される。
公式ページにMysqlを使用するときの設定方法が書かれていたのでメモ。
MysqlにRundeckで使用するデータベースを作成する
mysql> create database rundeckdb; Query OK, 1 row affected (0.00 sec) mysql> grant ALL on rundeck.* to 'rundeckuser'@'localhost' identified by 'rundeckpassword'; Query OK, 1 row affected (0.00 sec)
rundeck-config.groovyにMysql接続のための設定を追記する
以下のように書く。
: dataSource.driverClassName="com.mysql.jdbc.Driver" dataSource.url="jdbc:mysql://example.com/rundeckdb?autoReconnect=true" dataSource.username="rundeckuser" dataSource.password="rundeckpassword" :
mysql connector について
新しいバージョンのRundeckには デフォルトで/var/lib/rundeck/exp/webapp/WEB-INF/lib配下にmysql-connectorが置いてあるけど、もしMysqlがうまく動作しなかったりmysql-connectorが無い/デフォルトバージョンだと動かない場合は、MySQL :: Download Connector/J から mysql-connector-java-5.x.x-bin.jarをダウンロードして /var/lib/rundeck/server/lib/配下に設置するとよい。
上記の設定をしてRundeckを再起動したら設定完了。
テーブルはこんなかんじ。
mysql> show tables; +----------------------------+ | Tables_in_rundeckdb | +----------------------------+ | auth_token | | base_report | | execution | | log_file_storage_request | | node_filter | | notification | | orchestrator | | plugin_meta | | project | | rdoption | | rdoption_values | | rduser | | report_filter | | scheduled_execution | | scheduled_execution_filter | | storage | | workflow | | workflow_step | | workflow_workflow_step | +----------------------------+ 19 rows in set (0.00 sec)
mysqldumpしてプロジェクトとかジョブの情報を取っておくとよい。
でもresources.xmlの情報はこの中に入ってないので別途バックアップを取っておく必要がある。