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.

Über das Projekt

Setup celery workers managed by systemd

Installieren
ansible-galaxy install cans.celery-worker-setup
GitHub Repository
Lizenz
gpl-2.0
Downloads
147
Besitzer