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
alter user postgres with password 'PASSWORD';
\q
exit
|
実際の作業ログは以下の通りです。
| # 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 を再起動し、設定変更を反映します。
| systemctl restart postgresql
|
digdag 用ユーザとデータベースの作成
digdag で利用するユーザとデータベースを作成します。 postgres
ユーザでログインします。 設定済みのパスワードを設定します。
実際の作業ログは以下の通りです。
| # psql -U postgres
Password for user postgres: PASSWORD
|
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定数を生成する関数も提供します。
| \c digdag_db;
CREATE EXTENSION "uuid-ossp";
\q
|
実際の作業ログは以下の通りです。
| 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 をインストールしておきます。
| dnf -y install java-11-openjdk
|
digdag
digdag をセットアップします。
digdag 用ユーザとグループの作成
digdag をサービスとして動作させる際に利用するユーザとグループを作成しておきます。 -r
オプションを指定し、システムアカウントとして作成します。
| groupadd -r digdag
useradd -r -g digdag -s /sbin/nologin digdag
|
インストール
digdag をインストールします。
| curl -L https://dl.digdag.io/digdag-latest -o /usr/local/bin/digdag
chmod +x /usr/local/bin/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 ファイルを作成します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | 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
|
デーモンの起動
デーモンを起動します。 あわせて自動起動設定も実施しておきます。
| systemctl start digdag-server
systemctl enable digdag-server
|
WebUI へのアクセス
この状態でも http://[ADDRESS]:65432/
へアクセスすることで digdag の WebUI へアクセスすることが出来ます。
Nginx
ここからは任意部分です。 digdag へのアクセスを Proxy させる Nginx をインストールします。
インストール
Nginx のリポジトリを設定します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | 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 から参照されないようにします。
| mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.org
|
/etc/nginx/conf.d/digdag.conf
に digdag 用の Proxy 設定を行います。
1
2
3
4
5
6
7
8
9
10
11
12
13 | 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
|
デーモンの起動
デーモンを起動します。 あわせて自動起動設定も実施しておきます。
| systemctl start nginx
systemctl enable nginx
|
WebUI へのアクセス
これで http://[ADDRESS]
へアクセスすることで (Nginx を経由して) digdag の WebUI へアクセスすることが出来るようになりました。