cans.celery-worker-setup
セロリワーカー
systemdによって監視される一連のセロリワーカーの設定を行う役割です。
各ワーカーは、以下のように項目で説明される必要があります:
- app_name: 'MyApp' # (必須)
app_variable: 'my_app' # (デフォルト: `celeryw_app_variable`)
celeryd_bin: '/usr/local/bin/celery' # (デフォルト: `celeryw_bin`)
group: "adm" # (デフォルト: `celeryw_`)
log_dir: # (デフォルト: `celeryw_log_dir`)
log_filename: "%n%I" # (デフォルト: `celeryw_log_filename`)
log_level: "INFO" # (デフォルト: `celeryw_log_level`)
pid_filename: `%n-master.pid` # (デフォルト: `celeryw_pid_filename`)
queues: `%n-master.pid` # (デフォルト: `celeryw_queues`)
基本的に、下記のロール変数セクションの全ての変数は、
ワーカーごとにオーバーライド可能で、そのワーカーを説明する項目で同じ名前のキーを使って設定できます(ロール名前空間のプレフィックスを省略)。唯一の例外は、各ワーカーに対して必ず提供しなければならないapp_nameとapp_moduleの変数です。
要件
この役割には要件はありません。
ロール変数
このロールの全ての変数は、celeryw_というプレフィックスで名前空間が付けられています。
デフォルト
celeryw_app_variable: セロリアプリケーションへの参照を保持するモジュールレベルの変数(デフォルト: "app");celeryw_bin: セロリ実行ファイルのパス(デフォルト: "/usr/bin/celery")celeryw_daemon_options: セロリコマンドラインにそのまま渡すオプション(デフォルト: "");celeryw_etc_dir: セロリのワーカー設定ファイルを保存するディレクトリのパス(デフォルト: "/etc/celery");celeryw_group: セロリプロセスが実行されるグループ(デフォルト:{{ansible_user_id}})celeryw_log_dir: セロリのログファイルを保存するディレクトリのパス(デフォルト:/var/log/celery);celeryw_log_filename: ログファイルに使用する名前。利用可能なテンプレートの置換についてはセロリのドキュメントを参照してください(デフォルト:%n%I.log);celeryw_log_level: (デフォルト:ERROR)celeryw_pid_filename:%n.pidceleryw_queues: "celery"celeryw_run_dir: セロリのPIDファイルなどを保存するパス(デフォルト:/var/run/celery)celeryw_user: セロリプロセスが実行されるアイデンティティ(デフォルト:{{ansible_user_id}})celeryw_workers: 設定するワーカーのリストを含む変数(デフォルト:[]);
他のロール用の変数
なし
依存関係
このロールは、セロリワーカーを管理するために、cans.systemd-unit-installロールに依存しています。
サンプルプレイブック
最初の例では、主にロールで提供されるデフォルト値を利用して、二つのアプリケーションのワーカーを設定します:
- hosts: servers
roles:
- role: cans.celery-worker
celeryw_workers:
- app_name: "mailer"
app_module: "application.interfaces.tasks.mailer"
- app_name: "data-cruncher"
app_module: "application.interfaces.tasks.cruncher"
app_variable: "cruncher_app"
この二つ目の例では、グローバルレベルでいくつかの変数をオーバーライドし、他の変数はワーカーの説明レベルで設定しています:
- hosts: servers
vars:
celeryw_bin: "/opt/local/python-virtualenvs/python3.6/bin/celery"
roles:
- role: cans.celery-worker
celeryw_workers:
- app_name: "mailer"
app_module: "application.interfaces.tasks.mailer"
- app_name: "data-cruncher"
app_module: "application.interfaces.tasks.cruncher"
app_variable: "cruncher_app"
- app_name: "legacy-data-cruncher"
app_module: "legacy.interfaces.tasks.cruncher"
conf_dir: "/opt/local/etc/celery"
celery_bin: "/opt/local/python-virtualenvs/python2.5/bin/celery"
他の例については、testディレクトリ内にあるプレイブックも参照してください。
ライセンス
GPLv2
著者情報
Copyright © 2017, Nicolas CANIART.
