Digdag Serverをインストールする手順をまとめる。
環境は、
- CentOS 7.2
- OpenJDK 1.8.0_111
Digdag Serverとは
Digdag Serverは以下の機能を持っている。
- REST API server:クライアントとの応答を行う
- Task Agent:ワークフローの各タスク実行を行う
- Workflow executor:ワークフローの実行管理を行う
- Schedule executor:ワークフローのスケジュール管理を行う
REST API server以外は機能を起動させないことも可能。
Digdagのダウンロード
$ curl -o /usr/local/bin/digdag --create-dirs -L "https://dl.digdag.io/digdag-latest"
$ chmod +x /usr/local/bin/digdag
Digdag Serverを実行するユーザの作成
$ groupadd digdag
$ useradd -g digdag -d /opt/digdag digdag
Digdag Serverのホームディレクトリ作成
$ su -
# mkdir /opt/digdag/
# mkdir /opt/digdag/logs
# mkdir /opt/digdag/logs/accesslogs
# mkdir /opt/digdag/logs/tasklogs
# chown -R digdag:digdag /opt/digdag
Digdag ServerのDB作成
ワークフロー定義やスケジュール管理のために利用するDBを用意する。
今回はPostgreSQLを使う。
テーブル等のオブジェクトはDigdag Serverの初回実行時に作成されるため、DBとログインするユーザを用意する。
また、uuid-ossp
拡張モジュールを利用するのでCREATE EXTENSION
しておく。
$ psql -h <PostgreSQLサーバのホスト> -U <スーパーユーザ> -d postgres
postgres=# CREATE ROLE digdag WITH PASSWORD 'digdagpass' NOSUPERUSER NOCREATEDB NOCREATEROLE LOGIN;
CREATE ROLE
postgres=# CREATE DATABASE digdag_db WITH OWNER digdag;
CREATE DATABASE
postgres=# CREATE EXTENSION "uuid-ossp";
CREATE EXTENTION
Digdag Serverの設定ファイルの作成
以下のファイルを作って、/opt/digdag/
に置く。
server.properties
database.type = postgresql
database.user = digdag
database.password = digdagpass
database.host = <PostgreSQLサーバのホスト>
database.port = <PostgreSQLサーバのポート>
database.database = digdag_db
Digdag Serverのログローテション設定ファイルの作成
サーバーログとアクセスログはローテーション考慮が必要なので、logrotate向けの設定を行う。
/opt/digdag/logs/*.log
/opt/digdag/accesslogs/*.log {
create 0644 digdag digdag
daily
rotate 10
missingok
notifempty
copytruncate
compress
}
このファイルを/etc/logrotate.d/
に置く。
Digdag Serverの自動起動スクリプトの作成
今回はUpstartを使った。
以下のファイルを/etc/init/
に置く。
digdag-server.conf
# configuration for Upstart
description "digdag server"
start on runlevel [2345]
stop on runlevel [016]
chdir /opt/digdag
exec su -c "digdag server --config server.properties -O logs/tasklogs -A logs/accesslogs -L logs/server.log" digdag
respawn
# initctl reload-configuration
Digdag Serverの起動・停止
起動
# initctl start digdag-server
停止
# initctl stop digdag-server
以上。