#はじめに
『Rundeck』とは、オープンソースなジョブ管理ソフトウェアです。
GUIやAPIを介してジョブの作成、実行、管理、スケジューリングを行うことができます。
仕事では、主に基幹DBからRedshiftへのデータインテグレーションを目的に、『Talend Open Sutudio』と併用して運用しています。
※2017/08/31 追記
CentOS7版&自動セットアップスクリプトを投稿しました。
#前提条件
- CentOS 6.5上にインストールします。
- Rundeckのホスト名は"rundeck.example.jp"、IPアドレスは"192.168.1.100"と想定します。
- バックエンドDBをデフォルトのH2 DatabaseからMariaDBに変更します。またMariaDBはRundeckと同一サーバで稼働しているものとします。
- アクセスURLにポート番号(4440)を省略できるよう、Apacheと連携させます。またApacheはRundeckと同一サーバで稼働しているものとします。
#インストール
##JRE7のインストール
Oracle JRE7以上でも動作すると思われます。(実際に本番環境ではOracle JRE8で動作させています)
# yum install java-1.7.0
##Rundeckリポジトリの追加
# rpm -ivh http://repo.rundeck.org/latest.rpm
# sed -i -e 's/^enabled=1$/enabled=0/g' /etc/yum.repos.d/rundeck.repo
##Rundeck本体のインストール
# yum install rundeck --enablerepo=rundeck-release-bintray
##MariaDBにデータベースとユーザーの追加
バックエンドDBをデフォルトの H2 Database から MariaDB に変更する為、MariaDB にデータベース(rundeckdb)と、データベースへのアクセス権を持つユーザー(rundeckuser)を作成します。
※MariaDBのインストールと設定手順は割愛します。
$ mysql -u root -p
Enter password: (rootパスワード入力)
> CREATE DATABASE rundeckdb DEFAULT CHARACTER SET utf8;
> GRANT ALL PRIVILEGES ON rundeckdb.* TO rundeckuser@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
> \q
##rundeck-config.properties の変更
バックエンドDB関連の設定を変更します。
#grails.serverURL=http://localhost:4440 ←コメントアウト
#dataSource.url = jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;MVCC=true;TRACE_LEVEL_FILE=4 ←コメントアウト
#以下追記
rundeck.v14.rdbsupport = true
grails.serverURL=http://rundeck.example.jp:4440
dataSource.url = jdbc:mysql://localhost/rundeckdb?autoReconnect=true
dataSource.username = rundeckuser
dataSource.password = password
##framework.properties の変更
デフォルトの localhost から Rundeckのホスト名(またはIPアドレス)に変更します。
#framework.server.name = localhost ←コメントアウト
#framework.server.hostname = localhost ←コメントアウト
#framework.server.url = http://localhost:4440 ←コメントアウト
#以下追記
framework.server.name = rundeck.example.jp
framework.server.hostname = rundeck.example.jp
framework.server.url = http://rundeck.example.jp:4440
##自動起動の設定とRundeckの起動
# chkconfig rundeckd on
# service rundeckd start
ブラウザから http://rundeck.example.jp:4440/
にアクセスします。
尚、デフォルトの管理者ユーザーとパスワードは、それぞれ"admin"となります。
#Apacheとの連携
Apache自体はRundeckと同一サーバ上でインストールから起動まで完了しているものとします。
##profileの変更
Java起動パラメータに"-Dserver.web.content"を追加します。
・・・
export RDECK_JVM="-Djava.security.auth.login.config=/etc/rundeck/jaas-loginmodule.conf \
-Dloginmodule.name=RDpropertyfilelogin \
-Drdeck.config=/etc/rundeck \
-Drdeck.base=/var/lib/rundeck \
-Drundeck.server.configDir=/etc/rundeck \
-Dserver.datastore.path=/var/lib/rundeck/data \
-Drundeck.server.serverDir=/var/lib/rundeck \
-Drdeck.projects=/var/rundeck/projects \
-Drdeck.runlogs=/var/lib/rundeck/logs \
-Dserver.web.context=/rundeck \ ←追加
-Drundeck.config.location=/etc/rundeck/rundeck-config.properties \
-Djava.io.tmpdir=$RUNDECK_TEMPDIR"
・・・
##framework.propertiesの変更
#framework.server.url = http://rundeck.example.jp:4440 ←コメントアウト
framework.server.url = http://rundeck.example.jp/rundeck ←追加
##rundeck-config.propertiesの変更
#grails.serverURL=http://rundeck.example.jp:4440 ←コメントアウト
grails.serverURL=http://rundeck.example.jp/rundeck ←追加
##Rundeckの再起動
# service rundeckd restart
##/etc/httpd/conf.d/rundeck.confを作成
<Location "/rundeck">
ProxyPass http://localhost:4440/rundeck
ProxyPassReverse http://localhost:4440/rundeck
</Location>
##Apacheの再起動
# service httpd restart
ブラウザから http://rundeck.example.jp/rundeck
にアクセスします。
#Rundeckを日本語化する方法
{Rundeckインストールディレクトリ}/exp/webapp/WEB-INF/grails-app/i18n に移動します。
# cd /var/lib/rundeck/exp/webapp/WEB-INF/grails-app/i18n
オリジナルの言語設定ファイル(messages.properties)を、日本語設定ファイル(messages_ja.properties)にコピーします。
# cp messages.properties messages_ja.properties
messages_ja.propertiesを編集し、各パラメータを日本語化していきます。
[注意]
UTF-8でそのままマルチバイト文字で記述すると文字化けします。(参考1、参考2)
マルチバイト文字(全角)はUnicodeエスケープして記述してください。
ちなみにここのようなサイトを利用すれば、日本語を簡単にUnicodeエスケープに変換できます。
変更例)
・・・
# main menu item names
gui.menu.Workflows=Jobs
gui.menu.Events=Activity
gui.menu.Nodes=Nodes
gui.menu.Adhoc=Commands
gui.menu.Admin=Configure
・・・
↓↓↓↓↓↓
・・・
# main menu item names
gui.menu.Workflows=\u30b8\u30e7\u30d6 #ジョブ
gui.menu.Events=\u30a4\u30d9\u30f3\u30c8 #イベント
gui.menu.Nodes=\u30ce\u30fc\u30c9 #ノード
gui.menu.Adhoc=\u30b3\u30de\u30f3\u30c9 #コマンド
gui.menu.Admin=\u8a2d\u5b9a #設定
・・・
messages_ja.propertiesを編集後、Rundeckを再起動します。
# service rundeckd restart
##余談
Rundeckの国際化対応は完ぺきではなく、まだまだハードコードされている部分があるそうです。(https://github.com/rundeck/rundeck/wiki/Internationalization)
どうしてもハードコードされている部分も日本語化したい場合には、下記ディレクトリ以下から拡張子が".gsp"
のファイルを探し出して、ゴニョゴニュすればできる(かもしれません)。
/var/lib/rundeck/exp/webapp/WEB-INF/grails-app/views/