Rundeckインストールと設定メモ

  • 33
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

Rundeck』とは、オープンソースなジョブ管理ソフトウェアです。
GUIやAPIを介してジョブの作成、実行、管理、スケジューリングを行うことができます。
仕事では、主に基幹DBからRedshiftへのデータインテグレーションを目的に、『Talend Open Sutudio』と併用して運用しています。

前提条件

  • 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関連の設定を変更します。

/etc/rundeck/rundeck-config.properties
#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アドレス)に変更します。

/etc/rundeck/framework.properties
#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"を追加します。

/etc/rundeck/profile
・・・
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の変更

/etc/rundeck/framework.properties
#framework.server.url = http://rundeck.example.jp:4440    ←コメントアウト
framework.server.url = http://rundeck.example.jp/rundeck  ←追加

rundeck-config.propertiesの変更

/etc/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を作成

/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エスケープに変換できます。

変更例)

/var/lib/rundeck/exp/webapp/WEB-INF/grails-app/i18n/messages_ja.properties
・・・
# main menu item names
gui.menu.Workflows=Jobs
gui.menu.Events=Activity
gui.menu.Nodes=Nodes
gui.menu.Adhoc=Commands
gui.menu.Admin=Configure
・・・

↓↓↓↓↓↓

/var/lib/rundeck/exp/webapp/WEB-INF/grails-app/i18n/messages_ja.properties
・・・
# 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/