Rundeck

RundeckをCentOS7へインストール

投稿日:2019年2月19日 更新日:

目的

ジョブの定期実行やログ管理などをCentOSで実施したい場合ににcronよりも使いやすいと評判のOSSのジョブスケジューラであるRundeckを導入したいと思います。今回はインストールしてweb経由でアクセスするところまでを実施します。

Rundeck

https://www.rundeck.com/open-source

環境

OS : CentOS7
JDK : Openjdk8
Rundeck : 3.0.13

Step1 : JDKのインストール

Rundeckの動作環境としてjavaをインストールします。
私は開発環境用のjdkを入れました が、jreでも問題ありません。(jre-1.8.0でも動作することを確認しました。)

#jdkのインストール
$ sudo yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

#.bash_profileにJAVA_HOMEのパス定義
$vim .bash_profile
  export JAVA_HOME=/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64
  export PATH=$PATH:$JAVA_HOME/bin
  export PATH=$PATH:$JAVA_HOME/jre/bin

#.bash_profileの再読み込み
$ source ~/.bash_profile

Step2 : Rundeckのインストール

次にRundeckをインストールします。
まず、rundeckリポジトリを追加し、そのあとに、yumコマンドでインストール。systemctlコマンドでstartし、systemctl enableでサービス登録を行います。

#リポジトリ追加
$ sudo rpm -ivh http://repo.rundeck.org/latest.rpm 
  Preparing...                          ################################# [100%]
  Updating / installing...
     1:rundeck-repo-4-0                 ################################# [100%]

#rundeckd インストール
$ yum install rundeck
 
#rundeck起動
$ systemctl start rundeckd

#rundeck自動起動設定
$ systemctl enable rundeckd
  rundeckd.service is not a native service, redirecting to /sbin/chkconfig.
  Executing /sbin/chkconfig rundeckd on

Step3 : Rundeck 設定ファイル変更

ここまでで、localhostからのアクセスであれば問題ないですが、外部からネットワーク経由でアクセスしたい場合はさらにrundeck-config.propetiesとframework.propertiesのパラメータ変更が必要になります。

これらのファイル内のホストがデフォルトではlocalhostで定義されているので、これらをネットワーク経由のホスト名に変更します。

 cd /etc/rundeck/
$ sudo vim rundeck-config.properties
  grails.serverURL=http://<ホスト名orIPアドレス>/rundeck
  

$ sudo vim framework.properties
  ## framework.properties
  framework.server.name = <ホスト名orIPアドレス>
  framework.server.hostname = <ホスト名orIPアドレス>
  framework.server.port = <ポート番号>
  framework.server.url = http://<ホスト名orIPアドレス>:<ポート番号>/rundeck

また、profile内にweb.contextの記述を追加し、サービスを再起動します。

$sudo vim profile  
  RDECK_JVM="-Drundeck.jaaslogin=$JAAS_LOGIN \
             -Djava.security.auth.login.config=$JAAS_CONF \
             -Dloginmodule.name=$LOGIN_MODULE \
             -Drdeck.config=$RDECK_CONFIG \
             -Drundeck.server.configDir=$RDECK_SERVER_CONFIG \
             -Dserver.datastore.path=$RDECK_SERVER_DATA/rundeck \
             -Drundeck.server.serverDir=$RDECK_INSTALL \
             -Drdeck.projects=$RDECK_PROJECTS \
             -Drdeck.runlogs=$RUNDECK_LOGDIR \
             -Drundeck.config.location=$RDECK_CONFIG_FILE \
             -Djava.io.tmpdir=$RUNDECK_TEMPDIR \
             -Dserver.web.context=/rundeck \ #←これを追加
             -Drundeck.server.workDir=$RUNDECK_WORKDIR \
             -Dserver.http.port=$RDECK_HTTP_PORT \
             -Drdeck.base=$RDECK_BASE"

#rundeckサービス再起動
$ systemctl restart rundeckd

rundeck側の基本的な設定は以上で終わりです。

Step4 : ファイヤウォールとApatchの設定

次に外部からのアクセスを許可するため、CentOS側のフfirewallの開放設定を行います。rundeck側で設定したport番号に対して通過設定が必要です。

#firefall 設定
$ firewall-cmd --add-port=<ポート番号>/tcp --permanent
$ firewall-cmd --add-service=rundeckd --zone=public --permanent 
$ firewall-cmd --reload

最後に、/etc/httpd/conf.d/の配下にrundeck.confという名前のファイルを作成、web server(Apacheの前提)との連携部分を記述すれば、ブラウザから外部アクセスができるようになります。

#Apache設定
$ touch /etc/httpd/conf.d/rundeck.conf
$ vim /etc/httpd/conf.d/rundeck.conf
  <Location "/rundeck">
          ProxyPass http://<ホスト名orIPアドレス>/rundeck
          ProxyPassReverse http://<ホスト名orIPアドレス>/rundeck
 </Location>

#Apache再起動
$ systemctl restart httpd

Step5 : パスワード変更

外部アクセスを許可する場合、セキュリティ上、デフォルトパスワードを変更しておくことが望ましいため。以下の手順で実施しました。

#パスワード変更
$ java -jar /var/lib/rundeck/bootstrap/rundeck-3.0.13-20190123.war --encryptpwd Jetty
  Required values are marked with: *
  Username (Optional, but necessary for Crypt encoding):
  admin
  *Value To Encrypt (The text you want to encrypt):
  password

$ vim /etc/rundeck/realm.properties
  admin: MD5:,user,admin,architect,deploy,build

#rundeckサービス再起動
$ systemctl restart rundeckd

なお、Rundeckドキュメントにはjava -cp /var/lib/rundeck/bootstrap/jetty-all-9.0.7.v20131107.jar org.eclipse.jetty.util.security.Password user passでMD5の暗号化パスワード得られると書かれていましたが、エラーが出てしましました。原因を調べたところ、/var/lib/rundeck/bootstrapの配下にjetty-allが存在せず、rundeckのwarファイルのみしかなかったためと思われました。
仕方なく、上記の方法で実施しました。

次回はRundeckのDB設定などを行いたいと思います。

-Rundeck

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

RundeckのDBにPostgreSQLを使用する

Contents1 目的2 環境3 PostgreSQLの準備4 JDKの準備5 Rundeckのダウンロード6 PostgreSQL設定7 RundeckとPostgreSQLの接続設定8 Rund …

RundeckをWindowsにインストール

Contents1 目的2 環境3 Step1 : JDKのインストール4 Step2 : Rundeckのインストール5 ログイン6 まとめ 目的 使いやすいジョブスケジューラのRundeckですが …

Rundeck windows環境でのバージョンアップ

Contents1 目的2 環境3 準備4 Rundeckファイルのダウンロード5 実行6 確認7 まとめ 目的 windows環境で構築したRundeckのバージョンアップを行う。作成したプロジェク …

Rundeck(Windows環境) へLANからのアクセス許可設定

Contents1 目的2 環境3 Step1 : rundeck-config.propertiesの編集4 Step2 : framework.propertiesの編集5 Step3 : Win …

RundeckのDBデータを全削除する

Contents1 目的2 環境3 Step1 : ジョブのバックアップを取る4 Step2 : DBを再作成する5 Step3 : Rundeck再起動6 Step4 : ジョブのインポート7 まと …

言語切り替え

カテゴリー