cans.celery-worker-setup
celery-worker
Eine Rolle zur Einrichtung der Konfiguration einer Gruppe von Celery-Arbeitern, die von systemd überwacht werden.
Jeder Arbeiter muss durch Elemente wie das folgende beschrieben werden:
- app_name: 'MyApp' # (obligatorisch)
app_variable: 'my_app' # (standard: `celeryw_app_variable`)
celeryd_bin: '/usr/local/bin/celery' # (standard: `celeryw_bin`)
group: "adm" # (standard: `celeryw_`)
log_dir: # (standard: `celeryw_log_dir`)
log_filename: "%n%I" # (standard: `celeryw_log_filename`)
log_level: "INFO" # (standard: `celeryw_log_level`)
pid_filename: `%n-master.pid` # (standard: `celeryw_pid_filename`)
queues: `%n-master.pid` # (standard: `celeryw_queues`)
Grundsätzlich können alle Variablen im Abschnitt Rollenvariablen darunter pro Arbeiter überschrieben werden, in dem Element, das den Arbeiter beschreibt, durch einen Schlüssel, der denselben Namen hat (ohne das Präfix des Rollennamensraums). Die einzigen beiden Ausnahmen sind die Variablen app_name
und app_module
, die müssen für jeden definierten Arbeiter bereitgestellt werden.
Anforderungen
Diese Rolle hat keine Anforderungen.
Rollenvariablen
Alle Variablen in dieser Rolle sind mit dem Präfix celeryw_
benannt.
Standardeinstellungen
celeryw_app_variable
: Modulvariable, die eine Referenz auf die Celery-Anwendung hält (Standard: "app")celeryw_bin
: Pfad zur Celery-Binärdatei (Standard: "/usr/bin/celery")celeryw_daemon_options
: Zusätzliche Optionen, die unverändert in der Celery-Befehlszeile übergeben werden (Standard: "")celeryw_etc_dir
: Pfad zum Verzeichnis, in dem die Konfigurationsdateien der Celery-Arbeiter gespeichert werden (Standard: "/etc/celery")celeryw_group
: Gruppe, unter der die Celery-Prozesse laufen sollen (Standard:{{ansible_user_id}}
)celeryw_log_dir
: Pfad zum Verzeichnis, in dem die Protokolldateien von Celery gespeichert werden (/var/log/celery
)celeryw_log_filename
: Name, der für die Protokolldateien verwendet werden soll. Weitere Informationen zu verfügbaren Template-Ersetzungen finden Sie in der Celery-Dokumentation (Standard:%n%I.log
)celeryw_log_level
: (Standard:ERROR
)celeryw_pid_filename
:%n.pid
celeryw_queues
: "celery"celeryw_run_dir
: Pfad, in dem die PID-Dateien von Celery usw. gespeichert werden (Standard:/var/run/celery
)celeryw_user
: Identität, unter der die Celery-Prozesse laufen sollen (Standard:{{ansible_user_id}}
)celeryw_workers
: Die Variable, die die Liste der einzurichtenden Arbeiter enthält (Standard:[]
);
Variablen, die für andere Rollen gedacht sind
Keine
Abhängigkeiten
Damit systemd die Celery-Arbeiter für Sie verwaltet, hängt diese Rolle von der Rolle cans.systemd-unit-install
ab.
Beispiel-Playbook
Dieses erste Beispiel konfiguriert Arbeiter für zwei Anwendungen, die sich hauptsächlich auf die in der Rolle bereitgestellten Standardwerte stützen:
- 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"
Dieses zweite Beispiel überschreibt mehr Variablen, einige auf globaler Ebene im Abschnitt vars
des Playbooks, andere auf der Ebene der Arbeiterbeschreibung:
- 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"
Weitere Beispiele finden Sie auch im Playbook im test
-Verzeichnis.
Lizenz
GPLv2
Autorinformationen
Copyright © 2017, Nicolas CANIART.
ansible-galaxy install cans.celery-worker-setup