CentOS 7にワークフローをいじって設定できるPython製のジョブスケジューラー『Dagobah』をインストールする
Pocket

ジョブスケジューラーを導入しようと色々調べていたところ、ワークフローとかが使えるPython製のジョブスケジューラー『Dagobah』というものを見かけたので、ちょっと触ってみる事にする。
なお、インストール先としてはCentOS 7を用いる。

1.インストール

『Dagobah』はpip経由でインストールできるようなので、以下のコマンドでインストールする。

yum -y install python-pip gcc libxml2-devel libxslt-devel python-devel
pip install dagobah
pip install pymongo

 

これでインストールが完了。
簡単だ。

 

2.『Dagobah』のサービス起動

次に、インストールした『Dagobah』のサービスを起動する。
とりあえず、まず設定ファイルを作成する。

mkdir -p ~/dagobah/daemon/
cd ~/dagobah/daemon/
wget https://raw.githubusercontent.com/thieman/dagobah/master/dagobah/daemon/dagobahd.yml
sed -i 's/127.0.0.1/0.0.0.0/g' dagobahd.yml
cd

 

ホームディレクトリに移動後、以下のコマンドを実行するとサービスが起動する。

dagobah
[root@BS-PUB-CENT7-01 ~]# dagobahd
Creating new config file in home directory
Defaulting missing config key Logging.enabled to False
WARNING:root:Defaulting missing config key Logging.enabled to False
WARNING:root:Email.auth_required is True but Email.user is None. Emailing of reports will be disabled.
WARNING:root:SSH config doesn't exist, no remote hosts will be listed
Starting app on 127.0.0.1:9000

 

以後は、~/.dagobahd.ymlというファイルが設定ファイルになる。

Sponsored Links

3.ブラウザからアクセスする

とりあえず、ブラウザからアクセスしてみよう。初期パスワードは「dagobah」になる。

20161001_222756000000

 

ログイン直後の画面。
新しいジョブを作れとの事。

20161001_223454000000

 

適当に「test」というジョブを作ってみた。

20161001_223626000000

 

[View]を開いたところ。まだ何もタスクを追加してないので、特に何も表示されてない。

20161001_223736000000

 

ページ下にある「Add New Task」から適当にタスクを作ってつなげて見たところ。
マウスで普通につなげる事ができる。

20161001_224124000000

 

[Start Job from Beginning]からジョブを開始した結果。
普通にジョブが正常終了したとのこと。

20161001_224324000000

 

最初のタスクを意図的に失敗するようにした結果。
2個めのタスクが実行されていない事がわかる。

20161001_224418000000

 

確かに、マウスでワークフローをいじってジョブを処理させることができるようだ。
結構お手軽かつわかりやすい感じ。

 

4.リモートサーバに対してタスクを実行させる

さて、今時点ではリモートサーバの設定をしてないので、ローカルサーバに対するタスクしか実行できていない。
じゃあ、リモートサーバに対しタスクを実行するにはどんな設定をすればいいのか。

どうやら、「.ssh/config」に接続先の情報を記述することでリモートサーバとして指定できるようになるみたいだ。
とりあえず、以下のようにファイルを作成する。

Host サーバ名
     HostName ホスト名orIPアドレス
     User ユーザ名
     IdentityFile ~/.ssh/id_rsa(鍵ファイルPATH)

 

ファイル作成後、サーバの再起動をしなくてもリモート先の選択肢に出てくるようになる。

20161001_225640000000

 

各タスクの返り値に応じて処理を分岐させたり、返り値を次のタスクに渡すような処理はできないみたいだけど、単純なジョブならこれで設定できそう。
小規模、かつ単純なタスクのみをジョブにするなら結構ありかも。トリガーとかが必要になる環境では使えないかな。。。

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。