diff --git a/uwsgi-python/tasks/apps/vampir-mitglieder.yml b/uwsgi-python/tasks/apps/vampir-mitglieder.yml index 8b9227ffdd500246753452c3bd329169807f4cfa..6a6ff66cf3df020265aee703b3a0d967fbe7259e 100644 --- a/uwsgi-python/tasks/apps/vampir-mitglieder.yml +++ b/uwsgi-python/tasks/apps/vampir-mitglieder.yml @@ -1,5 +1,22 @@ --- +# https://github.com/ansible/ansible/issues/42983 +- name: ensure there exists a .ansible folder + file: + path: "{{app_path}}/.ansible" + state: directory + owner: "{{app_user}}" + group: "{{app_group}}" + +- name: ensure data model upgrades are applied # noqa 301 + command: "{{app_venv}}/bin/flask db upgrade" + args: + chdir: "{{app_path}}" + become: true + become_user: "{{app_user}}" + notify: + - "restart uwsgi instance {{app.instance}}" + - name: ensure we have a folder for invoices file: path: "{{ app_path }}/rechnungen" @@ -7,3 +24,25 @@ owner: "{{ app_user }}" group: "{{ app_group }}" mode: '0750' + +- name: ensure the celery unit file exists + template: + src: apps/vampir-mitglieder-celery.service.j2 + dest: "/etc/systemd/system/{{ app_name }}-celery.service" + owner: root + group: root + mode: '0644' + notify: + - reload systemd service files + - "restart uwsgi instance {{app.instance}}" + +- name: ensure the celery service is enabled + service: + name: "{{app_name}}-celery" + enabled: true + state: started + +- name: ensure the folder from above is not present anymore + file: + path: "{{app_path}}/.ansible" + state: absent diff --git a/uwsgi-python/templates/apps/vampir-mitglieder-celery.service.j2 b/uwsgi-python/templates/apps/vampir-mitglieder-celery.service.j2 new file mode 100644 index 0000000000000000000000000000000000000000..338d34af4e7052266cc5a0a97671d3c12373c3da --- /dev/null +++ b/uwsgi-python/templates/apps/vampir-mitglieder-celery.service.j2 @@ -0,0 +1,14 @@ +[Unit] +Description={{ app_name }}-Celery +After=network.target + +[Service] +User={{ app_user }} +Group={{ app_group }} +WorkingDirectory={{ app_path }} +Environment=VIRTUAL_ENV="{{ app_path }}" +ExecStart={{ app_venv }}/bin/celery -A app.celery worker --loglevel=DEBUG --concurrency={{ vampir_mitglieder_celery_concurrency }} +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/uwsgi-python/templates/apps/vampir-mitglieder.j2 b/uwsgi-python/templates/apps/vampir-mitglieder.j2 index b844ff3c3b7c1fdd9b7b736164422e51560fe2a8..99f0847973189bdb23d84fd54e384ad2878d34cf 100644 --- a/uwsgi-python/templates/apps/vampir-mitglieder.j2 +++ b/uwsgi-python/templates/apps/vampir-mitglieder.j2 @@ -17,4 +17,4 @@ SENDER_MAIL_ADDRESS = "{{ app_sender_mail_address }}" MAIL_TIMEOUT = 10 MAIL_USE_LOCALTIME = True -NO_SPOOLER = False +CELERY_BROKER_URL = "{{ vampir_mitglieder_celery_broker }}" diff --git a/uwsgi-python/vars/vampir-mitglieder.yml b/uwsgi-python/vars/vampir-mitglieder.yml index 4e5c8d296525b14ebbcab418eb9c737e11d810cd..b09a46911b5d5ea0a736311c524e7e0d7aea0702 100644 --- a/uwsgi-python/vars/vampir-mitglieder.yml +++ b/uwsgi-python/vars/vampir-mitglieder.yml @@ -39,5 +39,5 @@ app_mail_server: "mail.fsmpi.rwth-aachen.de" app_testing_mails: "vampir-vorstand@fsmpi.rwth-aachen.de" app_sender_mail_address: "vampir-vorstand@fsmpi.rwth-aachen.de" -app_spooler: true -app_spooler_dir: "{{app_path}}/spooler" +vampir_mitglieder_celery_broker: 'redis://localhost:6379/1' +vampir_mitglieder_celery_concurrency: 2