
Ubuntu 14.04 LTSをインストールしてみた
先日、Ubuntu 14.04…
ジョブスケジューラーを導入しようと色々調べていたところ、ワークフローとかが使えるPython製のジョブスケジューラー『Dagobah』というものを見かけたので、ちょっと触ってみる事にする。
なお、インストール先としてはCentOS 7を用いる。
『Dagobah』はpip経由でインストールできるようなので、以下のコマンドでインストールする。
yum -y install python-pip gcc libxml2-devel libxslt-devel python-devel pip install dagobah pip install pymongo
これでインストールが完了。
簡単だ。
次に、インストールした『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というファイルが設定ファイルになる。
とりあえず、ブラウザからアクセスしてみよう。初期パスワードは「dagobah」になる。
ログイン直後の画面。
新しいジョブを作れとの事。
適当に「test」というジョブを作ってみた。
[View]を開いたところ。まだ何もタスクを追加してないので、特に何も表示されてない。
ページ下にある「Add New Task」から適当にタスクを作ってつなげて見たところ。
マウスで普通につなげる事ができる。
[Start Job from Beginning]からジョブを開始した結果。
最初のタスクを意図的に失敗するようにした結果。
2個めのタスクが実行されていない事がわかる。
確かに、マウスでワークフローをいじってジョブを処理させることができるようだ。
結構お手軽かつわかりやすい感じ。
さて、今時点ではリモートサーバの設定をしてないので、ローカルサーバに対するタスクしか実行できていない。
じゃあ、リモートサーバに対しタスクを実行するにはどんな設定をすればいいのか。
どうやら、「.ssh/config」に接続先の情報を記述することでリモートサーバとして指定できるようになるみたいだ。
とりあえず、以下のようにファイルを作成する。
Host サーバ名 HostName ホスト名orIPアドレス User ユーザ名 IdentityFile ~/.ssh/id_rsa(鍵ファイルPATH)
ファイル作成後、サーバの再起動をしなくてもリモート先の選択肢に出てくるようになる。
各タスクの返り値に応じて処理を分岐させたり、返り値を次のタスクに渡すような処理はできないみたいだけど、単純なジョブならこれで設定できそう。
小規模、かつ単純なタスクのみをジョブにするなら結構ありかも。トリガーとかが必要になる環境では使えないかな。。。