tabimoba.net

とあるエンジニアの雑記帳

Ubuntu 18.04 LTS + MariaDB 10.1な環境へRundeckをインストールする

Ubuntu 18.04LTSへRundeckをインストールする方法です。DBMSはMariaDB 10.1を使用します。 なお、MariaDBはRundeck専用で、他の用途には共有しないものとします。

OpenJDK 8のインストール

以下のコマンドを実行し、OpenJDK 8をインストールします。

# apt update 
# apt install openjdk-8-jdk-headless

MariaDB 10.1のインストール

以下のコマンドを実行し、MariaDB 10.1をインストールします。

# apt install mariadb-client mariadb-server

インストール後、mariadbサービスが起動していることを確認し、mysql_secure_installationを実行し、MariaDBの初期設定を行います。

my.cnfの編集

/etc/mysql/conf.d/my.cnf を編集します。 ※innodb_buffer_pool_sizeと、innodb_log_file_sizeは環境や運用に合わせて調整します。

[mysql]

[mysqld]
innodb_buffer_pool_size = 512M
innodb_log_file_size = 128M
innodb_file_format = barracuda
innodb_file_format_max = barracuda
innodb_file_per_table = true
innodb_large_prefix = true

設定後、mariadbサービスを再起動します。

再起動後、mysqlコマンドでMariaDBのCLIツールに入り、SHOW GLOBAL VARIABLES LIKE '%innodb_file_%';を実行し、上記設定が反映されたことを確認します。設定が反映されない場合は複数回mariadbサービスを再起動します。

次に、MariaDBのCLIツールで以下のクエリを実行します。 (Rundeckサービス起動時における、Caused by: java.sql.SQLException: Index column size too large. The maximum column size is 767 bytes. 対応)

mysql> SET GLOBAL innodb_default_row_format=dynamic;

Rundeck用データベースおよびユーザーの作成

https://docs.rundeck.com/docs/administration/configuration/database/mysql.html を参考に、データベースとユーザーを作成します。

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

Rundeckのインストール

まず、Ubuntu/Debian用のRundeckリポジトリを追加します。 (https://bintray.com/rundeck でホストされているリポジトリを使用します) あわせて、GPG Public Keyも追加します。

# echo "deb https://rundeck.bintray.com/rundeck-deb /" | sudo tee -a /etc/apt/sources.list
# curl 'https://bintray.com/user/downloadSubjectPublicKey?username=bintray' | sudo apt-key add -

次に、Rundeckをaptよりインストールします。

# apt update
# apt install rundeck

MariaDB Connector/Jのダウンロードと配置

https://mariadb.com/downloads/#connectors からMariaDB Connector/Jの最新版を(2019/6/13時点においては2.4.1)ダウンロードします。

ダウンロード後、/var/lib/rundeck/libディレクトリへファイルを配置します。(/var/lib/rundeck/libディレクトリが存在しない場合は事前に作成します)

Rundeckの設定

/etc/rundeck/rundeck-config.properties を以下のように編集します。

#loglevel.default is the default log level for jobs: ERROR,WARN,INFO,VERBOSE,DEBUG
loglevel.default=INFO
rdeck.base=/var/lib/rundeck

#rss.enabled if set to true enables RSS feeds that are public (non-authenticated)
rss.enabled=false
# change hostname here
grails.serverURL=http://<RundeckサーバのFQDNまたはIPアドレス>:4440
dataSource.dbCreate = update
dataSource.url = jdbc:mysql://localhost/<Rundeck用のMariaDBデータベース名>?autoReconnect=true&useSSL=false
dataSource.username = <Rundeck用のMariaDBユーザーのユーザー名>
dataSource.password = <Rundeck用のMariaDBユーザーのパスワード>
rundeck.log4j.config.file = /etc/rundeck/log4j.properties
dataSource.driverClassName=org.mariadb.jdbc.Driver

次に、/etc/rundeck/framework.properties を以下のように編集します。

# ----------------------------------------------------------------
# Rundeck server connection information
# ----------------------------------------------------------------

framework.server.name = <RundeckサーバのFQDNまたはIPアドレス>
framework.server.hostname = <RundeckサーバのFQDNまたはIPアドレス>
framework.server.port = 4440
framework.server.url = http://<RundeckサーバのFQDNまたはIPアドレス>:4440

設定後、rundeckdサービスを再起動します。 再起動後、/var/log/rundeck/service.log にエラーが出力されていないことを確認し、Webブラウザよりhttp://<RundeckサーバのFQDNまたはIPアドレス>:4440 にアクセスし、動作を確認します。

サービス自動起動の有効化

以下のコマンドを実行し、mariadbおよびrundeckdサービスの有効化を行います。

# systemctl enable mariadb
# systemctl enable rundeckd