Dagobahのインストールマニュアル---Cronタイミングタスク管理ツール
Dagobahの概要
Dagobashはpythonで記述された単純な依存関係に基づくジョブスケジューラである.Dagobahでは、Cron構文を使用してスケジューリング作業を手配できます.Webインタフェースでドラッグをクリックして、各作業の一連のタスクの依存関係を定義することができます.
Dagobashは、失敗した単一のタスクを再試行し、有用な作業タスクの成功と失敗のレポートを送信し、多くのバックグラウンドでデータを永続化することができます.これにより、データの損失を心配する必要はありません.
githubプロジェクトアドレス:Dagobah
インストール
基本環境:
Linux
Pythonバージョン
SQLiteインストール
注意:このようにsqliteを直接インストールするのは失敗する可能性がありますので、まずソフトウェアをインストールする必要があります.
MongoDBインストール
dagobahdインストール
注意:私の既存の環境では、このようにインストールすると、dagobahを起動するとエラーが発生します.主に
エラー:
依存関係の表示
結果
libxml 2が見えます.so.2は依存する古い/usr/lib 64/下のバッグです.
解決策ソースコードインストールlibxml 2とlibxslt
2、インストールしたlxml 2をエクスポートする lxml をインストール
4、依存関係の表示
依存関係が
4、dagobahの再インストール
5、dagobahを起動する
dagobahのデフォルトポートは
起動時にプロファイル
デフォルトのポートとIPを使いたくない場合は、プロファイルを変更できます
6、Dagobahへのアクセス
ブラウザでの入力http://ip:port
以下のスクリーンショットは公式の画像を借ります
ログイン
パスワードはプロファイルにあります
jobの追加
ジョブの下にタスクを追加
タスクの直接依存関係の指定
このタスクの画像をクリックしてドラッグすると、タスクの直接的な関係を描くことができます.
注意:タスク依存関係を定義すると、タスクが失敗した場合、後続のタスクが実行されるようです.これは私が強い関係であれば、少し問題があります.これは先に表記して、後でよく研究します.
リモートホストへのタスクの追加
注意:
ソースインストールDagobah
githubからソースコードを取得
リモートサーバを構成するには、SSH configを構成する必要があります.
公式のSSH configドキュメントアドレスについて
次の情報を追加
注意:test 2はホスト192.168.0.1の別名です.
sshの秘密免除を構成して、命令
dagobahの起動
注意:dagobahインストール後、コマンドパスは
けっかん jobとjobの依存関係を定義できない taskとjob間の依存関係を定義できない taskとtask依存の場合、中間のtaskが失敗した場合、後続のtaskは依然として実行を継続することができ、その設計の原則はタスクの失敗であり、全体のタスクの実行に影響を与えないが、私が強い依存であれば、問題がある
Dagobashはpythonで記述された単純な依存関係に基づくジョブスケジューラである.Dagobahでは、Cron構文を使用してスケジューリング作業を手配できます.Webインタフェースでドラッグをクリックして、各作業の一連のタスクの依存関係を定義することができます.
Dagobashは、失敗した単一のタスクを再試行し、有用な作業タスクの成功と失敗のレポートを送信し、多くのバックグラウンドでデータを永続化することができます.これにより、データの損失を心配する必要はありません.
githubプロジェクトアドレス:Dagobah
インストール
基本環境:
Linux
RedHat
CentOS 5.8
2.6.18-308.el5 x86_64 GNU/Linux
Pythonバージョン
Python 2.7
SQLiteインストール
pip install pysqlite sqlalchemy alembic
注意:このようにsqliteを直接インストールするのは失敗する可能性がありますので、まずソフトウェアをインストールする必要があります.
yum install sqlite*
MongoDBインストール
pip install pymongo
dagobahdインストール
pip install dagobah
注意:私の既存の環境では、このようにインストールすると、dagobahを起動するとエラーが発生します.主に
lxml
ソフトウェア依存のlibxml 2はCentOS 5.8のデフォルトバージョンで低すぎます(エラー:
etree.so
依存関係の表示
ldd /usr/local/lib/python2.7/site-packages/lxml/etree.so
結果
linux-vdso.so.1 => (0x00007fff11af1000)
libxslt.so.1 => /usr/lib64/libxslt.so.1 (0x00002b32a90c9000)
libexslt.so.0 => /usr/lib64/libexslt.so.0 (0x00002b32a92ff000)
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00002b32a9511000)
libz.so.1 => /usr/lib64/libz.so.1 (0x00002b32a985c000)
libm.so.6 => /lib64/libm.so.6 (0x00002b32a9a71000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b32a9cf4000)
libc.so.6 => /lib64/libc.so.6 (0x00002b32a9f10000)
libgcrypt.so.11 => /usr/lib64/libgcrypt.so.11 (0x00002b32aa26a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b32aa4dc000)
libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0 (0x00002b32aa6e0000)
/lib64/ld-linux-x86-64.so.2 (0x0000003084e00000)
libxml 2が見えます.so.2は依存する古い/usr/lib 64/下のバッグです.
解決策
wget http://xmlsoft.org/sources/libxml2-2.9.0.tar.gz
tar -zxvf libxml2-2.9.0.tar.gz
cd libxml2-2.9.0
./configure
make
sudo make install
wget http://xmlsoft.org/sources/libxslt-1.1.27.tar.gz
tar -zxvf libxslt-1.1.27.tar.gz
./configure
make
sudo make install
2、インストールしたlxml 2をエクスポートする
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
pip install lxml
4、依存関係の表示
[root@solr]# ldd /usr/local/lib/python2.7/site-packages/lxml/etree.so
linux-vdso.so.1 => (0x00007fff11af1000)
libxslt.so.1 => /usr/lib64/libxslt.so.1 (0x00002b32a90c9000)
libexslt.so.0 => /usr/lib64/libexslt.so.0 (0x00002b32a92ff000)
libxml2.so.2 => /usr/local/lib/libxml2.so.2 (0x00002b32a9511000)
libz.so.1 => /usr/lib64/libz.so.1 (0x00002b32a985c000)
libm.so.6 => /lib64/libm.so.6 (0x00002b32a9a71000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b32a9cf4000)
libc.so.6 => /lib64/libc.so.6 (0x00002b32a9f10000)
libgcrypt.so.11 => /usr/lib64/libgcrypt.so.11 (0x00002b32aa26a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b32aa4dc000)
libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0 (0x00002b32aa6e0000)
/lib64/ld-linux-x86-64.so.2 (0x0000003084e00000)
依存関係が
libxml2.so.2 => /usr/local/lib/libxml2.so.2 (0x00002b32a9511000)
になっていることがわかります4、dagobahの再インストール
pip install dagobah
5、dagobahを起動する
./dagobah
dagobahのデフォルトポートは
9000
です起動時にプロファイル
~/.dagobahd.yml
が生成されますDagobahd:
# host and port for the Flask app. set host to 0.0.0.0 to listen on all IPs
host: 127.0.0.1
port: 9000
# the app's secret key, used for maintaining user sessions
# WARNING: change this to your own random value!
# an easy way to create a key with python is "import os; os.urandom(24)"
app_secret: 'g\xde\xf5\x06@K\xf5:\x1fmZ\xac\x1fO\xe8\xcd\xde\xcf\x90\xaeY7\x8c\x96'
# credentials for single-user auth
auth_disabled: False
password: dagobah
# choose one of the available backends
# None: Dagobah will not use a backend to permanently store data
# sqlite: use a SQLite database. see the SQLite section in this file
# mongo: store results in MongoDB. see the MongoBackend section in this file
backend: sqlite
# choose one of the available email templates
# None: Dagobah won't send you emails when a job finishes or fails
# text: Simple text format
# basic: Simple, tabular HTML email
email: basic
Logging:
# change to False to disable logging entirely
enabled: True
# specify a full path to the log file
# alternatively, specify "default" to log to a file in the dagobahd directory
logfile: default
# specify the log level to use
# choose one of [debug, info, warning, error, critical]
loglevel: info
Email:
# set host and port of the SMTP server to use to send mail
# e.g. host: smtp.gmail.com port: 587
host: smtp.gmail.com
port: 587
# email server authentication
user: None
password: None
# tls is required for some mail servers, specifically Gmail
use_tls: True
# from address in the emails from Dagobah.
# supports the following special variables within curly brackets {}
# {HOSTNAME}: the machine's hostname
from_address: dagobah@{HOSTNAME}
# list of email addresses to send reports to, e.g. ['[email protected]']
recipients: []
# sets whether Dagobah sends you emails on successful job completion
send_on_success: True
# sets whether Dagobah sends you emails on job and task failures
send_on_failure: True
SQLiteBackend:
# specify a full path to the sqlite database file
# alternatively, specify "default" to create a database file in the dagobahd directory
filepath: default
MongoBackend:
# connection details to a mongo database
host: localhost
port: 27017
db: dagobah
# names of collections within the db specified above
dagobah_collection: dagobah
job_collection: dagobah_job
log_collection: dagobah_log
デフォルトのポートとIPを使いたくない場合は、プロファイルを変更できます
6、Dagobahへのアクセス
ブラウザでの入力http://ip:port
以下のスクリーンショットは公式の画像を借ります
ログイン
パスワードはプロファイルにあります
jobの追加
ジョブの下にタスクを追加
タスクの直接依存関係の指定
このタスクの画像をクリックしてドラッグすると、タスクの直接的な関係を描くことができます.
注意:タスク依存関係を定義すると、タスクが失敗した場合、後続のタスクが実行されるようです.これは私が強い関係であれば、少し問題があります.これは先に表記して、後でよく研究します.
リモートホストへのタスクの追加
注意:
pip install dagobah
でインストールしたバージョン(CentOS 5.8)はリモートサーバのタスク追加機能をサポートしていないため、ソースコードでインストールする必要があります.ソースインストールDagobah
githubからソースコードを取得
git clone https://github.com/thieman/dagobah.git
python setup.py install
リモートサーバを構成するには、SSH configを構成する必要があります.
公式のSSH configドキュメントアドレスについて
vim ~/.ssh/config
次の情報を追加
# Contents of ~/.ssh/config
Host test2
HostName 192.168.0.1
User root
IdentityFile ~/.ssh/id_rsa
Host test1
HostName 192.168.0.2
User root
IdentityFile ~/.ssh/id_rsa
注意:test 2はホスト192.168.0.1の別名です.
sshの秘密免除を構成して、命令
ssh-keygen
とssh-copy-id
を使って、あなたは知っていて、詳しい過程は紹介しませんdagobahの起動
dagobahd
注意:dagobahインストール後、コマンドパスは
/usr/local/bin/dagobahd
です.けっかん