Rundeck のデータベース設定(MySQL)
目的
ジョブ管理ツールのRundeckはデフォルトでH2 Databaseが組み込まれ、これがリポジトリDBとして設定されています。ただ、ジョブの数や実行回数が増え、ログが溜まってくるとGUIでの動作が重くなってくるらしい・・・
そのため、リポジトリDBをH2 DatabaseからMySQLの管理に変更したい。
MySQL Community EditionはOSSで無料で使用することができるし、RundeckのマニュアルでもExampleとして載っているので安心できる。
(同じOSSであるPostgreSQLでも代替可能とは思います。)
環境
OS:CentOS7
MySQL:Ver. 15.1
Rundeck:Ver. 3.0.13
MySQLのインストール
まずはMySQLをyumコマンドでインストールします。
#インストール
$ sudo yum install mysql-community-server
もし、オフライン環境で構築する場合は以下のURLからファイルをダウンロードして、rpmでインストールすることもできます。
https://dev.mysql.com/downloads/installer/
RDB Datasourceの設定
次に、MySQLにRundeck用のDBを用意し、このDBにアクセスできるユーザー名とパスワードを設定します。
# Rundeck用DB作成
mysql> create database rundeck;
# アクセス用アカウント作成
 mysql> GRANT ALL ON rundeck.* to 'rundeckuser'@'localhost' identified by 'rundeckpassword';
次にRundeckのrundeck-config.propertiesのファイルを編集し、デフォルトのH2 DatabaseからMySQLへ接続先DBの設定を変更します。
以下の「追加」と書いてある部分が設定部分です。
#configファイル設定
$ vim /etc/rundeck/rundeck-config.properties
#dataSource.url = jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;MVCC=true
#Comment
rundeck.v14.rdbsupport=true #追加
dataSource.url = jdbc:mysql://myserver/rundeckdb?autoReconnect=true
dataSource.username = rundeckuser
dataSource.password = rundeckpassword
dataSource.driverClassName=com.mysql.jdbc.Driver #追加
rundeck.log4j.config.file = /etc/rundeck/log4j.properties
#rundeck再起動
$ systemctl restart rundeckd
ちゃんと起動できているか確認します。しばらく待って、runが表示され続けていれば大丈夫です。
$systemctl status rundeckd
さらに、上記のあと、クライアント端末からブラウザを起動し、Rundeckのサーバーにアクセスしてログインできれば問題なく成功していると考えて大丈夫かと思います。
注意点
上記設定中にハマってしまった箇所があります。
私の環境ではデフォルトのrundeck-config.propertiesファイル内に、以下の記述がなく、これらを追加しないとうまく動きませんでした。
rundeck.v14.rdbsupport=true
dataSource.driverClassName=com.mysql.jdbc.Driver
最終的には気づいたのですが、気づいて追記するまでに、かなり時間と労力を費やしてしまいました。