cans.celery-worker-setup
celery-worker
Rola do skonfigurowania zestawu pracowników Celery nadzorowanych przez systemd.
Każdy pracownik musi być opisany przez elementy, takie jak te poniżej:
- app_name: 'MyApp' # (wymagane)
app_variable: 'my_app' # (domyślne: `celeryw_app_variable`)
celeryd_bin: '/usr/local/bin/celery' # (domyślne: `celeryw_bin`)
group: "adm" # (domyślne: `celeryw_`)
log_dir: # (domyślne: `celeryw_log_dir`)
log_filename: "%n%I" # (domyślne: `celeryw_log_filename`)
log_level: "INFO" # (domyślne: `celeryw_log_level`)
pid_filename: `%n-master.pid` # (domyślne: `celeryw_pid_filename`)
queues: `%n-master.pid` # (domyślne: `celeryw_queues`)
W zasadzie wszystkie zmienne w sekcji Zmienne roli poniżej mogą być nadpisane dla każdego pracownika, w elemencie opisującym pracownika, przez klucz o tej samej nazwie (opuszczając prefiks przestrzeni nazw roli). Jedynymi dwoma wyjątkami są zmienne app_name
i app_module
, które musisz podać dla każdego pracownika, którego definiujesz.
Wymagania
Ta rola nie ma wymagań.
Zmienne roli
Wszystkie zmienne w tej roli używają prefiksu celeryw_
.
Domyślne
celeryw_app_variable
: zmienna na poziomie modułu, która zawiera odniesienie do aplikacji celery (domyślne: "app");celeryw_bin
: ścieżka do pliku binarnego celery (domyślne: "/usr/bin/celery");celeryw_daemon_options
: dodatkowe opcje, które mają być przekazane tak jak są w wierszu poleceń celery (domyślne: "");celeryw_etc_dir
: ścieżka do katalogu, w którym przechowywane są pliki konfiguracyjne pracowników celery (domyślne: "/etc/celery");celeryw_group
: grupa, pod którą powinny działać procesy celery (domyślne:{{ansible_user_id}}
);celeryw_log_dir
: ścieżka do katalogu, w którym przechowywane są pliki logów celery (/var/log/celery
);celeryw_log_filename
: nazwa używana dla plików logów. Zapoznaj się z dokumentacją celery, aby dowiedzieć się więcej o dostępnych substytucjach szablonu (domyślne:%n%I.log
);celeryw_log_level
: (domyślne:ERROR
);celeryw_pid_filename
:%n.pid
;celeryw_queues
: "celery";celeryw_run_dir
: ścieżka, w której przechowywane są pliki PID celery itd. (domyślne:/var/run/celery
);celeryw_user
: tożsamość, pod którą powinny działać procesy celery (domyślne:{{ansible_user_id}}
);celeryw_workers
: zmienna zawierająca listę pracowników do skonfigurowania (domyślne:[]
);
Zmienne przeznaczone dla innych ról
Brak
Zależności
Aby systemd mógł zarządzać pracownikami celery, ta rola zależy od roli cans.systemd-unit-install
.
Przykład Playbooka
Ten pierwszy przykład skonfiguruje pracowników dla dwóch aplikacji, polegając głównie na domyślnych wartościach podanych w roli:
- 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"
Ten drugi przykład nadpisuje więcej zmiennych, niektóre na poziomie globalnym, w sekcji vars
playbooka, inne na poziomie opisu pracownika:
- 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"
Możesz również zapoznać się z playbookiem znajdującym się w katalogu test
, aby zobaczyć więcej przykładów.
Licencja
GPLv2
Informacje o autorze
Copyright © 2017, Nicolas CANIART.
ansible-galaxy install cans.celery-worker-setup