ルーターエンジニアのtoyamaです。 今回はジョブスケジューラー「Rundeck」のインストール方法をご紹介します。

Rundeckとは

  • Rundeckとは、cronのように指定した時刻にプログラムを実行させるように設定できるオープンソースのジョブスケジューラーの1つです。
  • エラーの記録などを細かく設定しなくても勝手に記録してくれるので、いつのジョブが失敗して、そのときのエラーも瞬時に把握することができます。
  • プラグインをいれればスラックへの通知なども可能です。

インストール方法

今回は、CentOS7.7のサーバーにインストールする手順をご紹介します。

$ cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core)

組み込みのデータベースを使用することもできますが、Rundeckが動くサーバーと、データベースは分けたかったので、ローカルネットのmariadbを使用しました。

$ mysql --version mysql Ver 15.1 Distrib 10.3.12-MariaDB, for Linux (x86_64) using readline 5.1

まずはjavaをインストールします。

$ sudo yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel $ java -version openjdk version "1.8.0_282" OpenJDK Runtime Environment (build 1.8.0_282-b08) OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)

次に、Rundeckのリポジトリを追加し、インストールします。

$ sudo rpm -ivh http://repo.rundeck.org/latest.rpm $ yum install rundeck

続いて、Rundeckのmaridbクライアントのプラグインをインストールします。 ダウンロードページ こちらのページから必要なプラグインをダウンロードします。 今回はjava8をインストールしたので、ProductをJava 8 connectorを選択してダウンロードし、/var/lib/rundeck/lib/に置きます。

$ mv mariadb-java-client-2.7.2.jar /var/lib/rundeck/lib/

次に/etc/rundeck/rundeck-config.propertiesのファイルにDB接続設定を追加します。

dataSource.dbCreate = update dataSource.url = jdbc:mysql://{データベースのIP}/rundeck?autoReconnect=true&useSSL=false dataSource.username = rundeckuser dataSource.password = rundeckpassword dataSource.driverClassName=org.mariadb.jdbc.Driver

また、接続するデータベースにrundeckが使用するデータベースを作成し、上で設定したユーザー名、パスワードのユーザーを作成してください。

mysql> create database rundeck; mysql> grant ALL on rundeck.* to 'rundeckuser'@'%' identified by 'rundeckpassword';

これで設定は完了です。 あとは起動するだけです。

$ systemctl start rundeckd $ systemctl enable rundeckd

Rundeck-home ブラウザからこちらのURLを開いて、トップページが表示されれば成功です。

ユーザーID、パスワードの初期値はadminです。

最後に

実際に使ってみて、cronと違って、エラーログや実行ログを勝手に記録してくれるので、とてもイイです。 毎時実行するジョブを設定して2ヶ月位経ちますが、ちゃんと実行してくれています。 使ってみようか迷っている方はぜひ使ってみてください。

Pocket