Rocky Linux8 へ digdag をインストールする
Rocky Linux8 に digdag をインストールする手順をメモしておきます。
作業の流れ¶
作業は以下の流れで行います。
- digdag のバックエンドで利用している為、PostgreSQL をインストールします。
- digdag は Java で動作する為、JDK をインストールします。
- digdag 本体をインストールします。
- (任意) digdag へのアクセスを Proxy させる為に、フロントへ Nginx をインストールします。
PostgreSQL¶
PostgreSQL をセットアップしていきます。
インストール¶
PostgreSQL をインストールします。
dnf -y install postgresql-server postgresql-contrib
postgresql-setup initdb
systemctl start postgresql
systemctl enable postgresql
postgres ユーザのパスワード設定¶
postgres ユーザへパスワードを設定しておきます。
実際の作業ログは以下の通りです。
# sudo su - postgres
$ psql
psql (10.17)
Type "help" for help.
postgres=# alter user postgres with password 'PASSWORD';
ALTER ROLE
postgres=# \q
$ exit
#
認証設定の変更¶
認証の設定を変更しておきます。 /var/lib/pgsql/data/pg_hba.conf を以下のように変更します (peer や ident を md5 へ変更します)。
変更前¶
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
変更後¶
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
設定が完了したら PostgreSQL を再起動し、設定変更を反映します。
digdag 用ユーザとデータベースの作成¶
digdag で利用するユーザとデータベースを作成します。 postgres ユーザでログインします。 設定済みのパスワードを設定します。
実際の作業ログは以下の通りです。
digdag 用のユーザとデータベースを作成します。
CREATE ROLE digdag WITH PASSWORD 'PASSWORD' NOSUPERUSER NOCREATEDB NOCREATEROLE LOGIN;
CREATE DATABASE digdag_db WITH OWNER digdag;
実際の作業ログは以下の通りです。
postgres=# CREATE ROLE digdag WITH PASSWORD 'PASSWORD' NOSUPERUSER NOCREATEDB NOCREATEROLE LOGIN;
CREATE ROLE
postgres=# CREATE DATABASE digdag_db WITH OWNER digdag;
CREATE DATABASE
uuid-ossp 拡張機能を有効化しておきます。 uuid-ossp は公式サイトで以下のように記載されています。
uuid-osspモジュールは複数の標準的なアルゴリズムの1つを使用して汎用一意識別子(UUID)を生成する関数を提供します。 また、特殊なUUID定数を生成する関数も提供します。
実際の作業ログは以下の通りです。
postgres=# \c digdag_db;
You are now connected to database "digdag_db" as user "postgres".
digdag_db=# CREATE EXTENSION "uuid-ossp";
CREATE EXTENSION
digdag_db=# \q
JDK¶
digdag は Java で書かれている為、JDK をインストールしておきます。
digdag¶
digdag をセットアップします。
digdag 用ユーザとグループの作成¶
digdag をサービスとして動作させる際に利用するユーザとグループを作成しておきます。 -r オプションを指定し、システムアカウントとして作成します。
インストール¶
digdag をインストールします。
現時点ではバージョン 0.10.3 がインストールされました。
# digdag --version
OpenJDK 64-Bit Server VM warning: Option AggressiveOpts was deprecated in version 11.0 and will likely be removed in a future release.
0.10.3
digdag の設定¶
digdag の設定を行っています。 まず /etc/digdag/digdag.properties にデータベースへ接続する為の設定を行います。
mkdir /etc/digdag
cat << 'EOF' > /etc/digdag/digdag.properties
database.type = postgresql
database.host = localhost
database.port = 5432
database.user = digdag
database.password = PASSWORD
database.database = digdag_db
database.maximumPoolSize = 20
EOF
/etc/sysconfig/digdag-server に digdag をサーバとして起動する際の設定を行います。
cat << 'EOF' > /etc/sysconfig/digdag-server
CONFIG_FILE=/etc/digdag/digdag.properties
PORT=65432
BINDING=0.0.0.0
ACCESS_LOG=/var/log/digdag-server/access
TASK_LOG=/var/log/digdag-server/task
EOF
digdag を systemd でデーモンとして動作させる為の Unit ファイルを作成します。
cat << 'EOF' > /usr/lib/systemd/system/digdag-server.service
[Unit]
Description=Digdag server daemon
After=network.target postgresql.service
[Service]
User=digdag
EnvironmentFile=/etc/sysconfig/digdag-server
ExecStart=/usr/bin/java -jar /usr/local/bin/digdag server -n ${PORT} -b ${BINDING} -O ${TASK_LOG} -A ${ACCESS_LOG} -c ${CONFIG_FILE}
ExecStop=/bin/kill -s SIGTERM ${MAINPID}
[Install]
WantedBy=multi-user.target
EOF
新規作成した Unit ファイルを読み込みます。
ログディレクトリの作成¶
ログディレクトリを作成しておきます。 ログディレクトリは /etc/sysconfig/digdag-server で設定済みです。
mkdir -p /var/log/digdag-server/access /var/log/digdag-server/task
chown -R digdag:digdag /var/log/digdag-server
デーモンの起動¶
デーモンを起動します。 あわせて自動起動設定も実施しておきます。
WebUI へのアクセス¶
この状態でも http://[ADDRESS]:65432/ へアクセスすることで digdag の WebUI へアクセスすることが出来ます。

Nginx¶
ここからは任意部分です。 digdag へのアクセスを Proxy させる Nginx をインストールします。
インストール¶
Nginx のリポジトリを設定します。
cat << 'EOF' > /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
リポジトリの設定が完了したらパッケージマネージャでインストールします。
Proxy の設定¶
digdag 用の Proxy 設定は Nginx デフォルト設定ファイルとは別に行う方針で作業します。 その為、Nginx デフォルトの設定ファイルは移動し、Nginx から参照されないようにします。
/etc/nginx/conf.d/digdag.conf に digdag 用の Proxy 設定を行います。
cat << 'EOF' > /etc/nginx/conf.d/digdag.conf
upstream digdag_server {
server localhost:65432;
}
server {
listen 80 default_server;
location / {
proxy_pass http://digdag_server;
}
}
EOF
デーモンの起動¶
デーモンを起動します。 あわせて自動起動設定も実施しておきます。
WebUI へのアクセス¶
これで http://[ADDRESS] へアクセスすることで (Nginx を経由して) digdag の WebUI へアクセスすることが出来るようになりました。
