From fe1f037e169c3dbe3f597752b386ca3da02ecdb6 Mon Sep 17 00:00:00 2001 From: Vagrant Default User Date: Wed, 2 Sep 2020 07:51:57 +0000 Subject: [PATCH 1/8] add celery service --- roles/lokole/tasks/install.yml | 26 ++++++++++++++++++-- roles/lokole/tasks/main.yml | 14 +++++++++++ roles/lokole/templates/celery.service.j2 | 12 +++++++++ roles/lokole/templates/celerybeat.service.j2 | 10 ++++++++ roles/lokole/templates/celerybeat.sh.j2 | 6 +++++ roles/lokole/templates/run-celery.sh.j2 | 7 ++++++ 6 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 roles/lokole/templates/celery.service.j2 create mode 100644 roles/lokole/templates/celerybeat.service.j2 create mode 100644 roles/lokole/templates/celerybeat.sh.j2 create mode 100644 roles/lokole/templates/run-celery.sh.j2 diff --git a/roles/lokole/tasks/install.yml b/roles/lokole/tasks/install.yml index dcb4c1106..05ae02fa8 100644 --- a/roles/lokole/tasks/install.yml +++ b/roles/lokole/tasks/install.yml @@ -72,7 +72,7 @@ - "{{ lokole_venv }}/lib/python${python_version}/site-packages/opwen_email_client/webapp" - name: mkdir {{ lokole_run_directory }} - file: + file: state: directory path: "{{ lokole_run_directory }}" @@ -87,6 +87,28 @@ dest: "{{ lokole_run_directory }}/webapp.sh" mode: a+x +- name: Install {{ lokole_run_directory }}/run-celery.sh from template + template: + src: run-celery.sh.j2 + dest: "{{ lokole_run_directory }}/run-celery.sh" + mode: a+x + +- name: Install {{ lokole_run_directory }}/celerybeat.sh from template + template: + src: celerybeat.sh.j2 + dest: "{{ lokole_run_directory }}/celerybeat.sh" + mode: a+x + +- name: Install /etc/systemd/system/celery.service unit file from template + template: + src: celery.service.j2 + dest: /etc/systemd/system/celery.service + +- name: Install /etc/systemd/system/celerybeat.service unit file from template + template: + src: celerybeat.service.j2 + dest: /etc/systemd/system/celerybeat.service + - name: Create admin user with password, for http://box{{ lokole_url }} # http://box/lokole shell: | . {{ lokole_run_directory }}/webapp_secrets.sh @@ -110,7 +132,7 @@ set_fact: lokole_installed: True -- name: "Add 'lokole_installed: True' to {{ iiab_state_file }}" +- name: "Add 'lokole_insta lled: True' to {{ iiab_state_file }}" lineinfile: path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml regexp: '^lokole_installed' diff --git a/roles/lokole/tasks/main.yml b/roles/lokole/tasks/main.yml index 603982713..3ad999873 100644 --- a/roles/lokole/tasks/main.yml +++ b/roles/lokole/tasks/main.yml @@ -32,6 +32,20 @@ state: restarted when: lokole_enabled | bool +- name: Enable and start celery systemd service + systemd: + name: celery + enabled: yes + state: restarted + when: lokole_enabled | bool + +- name: Enable celery beat service + systemd: + name: celerybeat + enabled: yes + state: started + when: lokole_enabled | bool + - name: Disable & Stop 'lokole' systemd service, if not lokole_enabled systemd: name: lokole diff --git a/roles/lokole/templates/celery.service.j2 b/roles/lokole/templates/celery.service.j2 new file mode 100644 index 000000000..5d542c696 --- /dev/null +++ b/roles/lokole/templates/celery.service.j2 @@ -0,0 +1,12 @@ +[Unit] +Description=Celery service +After=network.target + +[Service] +Type=simple +ExecStart=/bin/bash {{ lokole_run_directory }}/run-celery.sh +ExecReload=/bin/kill -s HUP $MAINPID +ExecStop=/bin/kill TERM $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/roles/lokole/templates/celerybeat.service.j2 b/roles/lokole/templates/celerybeat.service.j2 new file mode 100644 index 000000000..d54007144 --- /dev/null +++ b/roles/lokole/templates/celerybeat.service.j2 @@ -0,0 +1,10 @@ +[Unit] +Description=Celery beat timed service +After=network.target + +[Service] +Type=simple +ExecStart=/bin/bash {{ lokole_run_directory }}/celerybeat.sh + +[Install] +WantedBy=multi-user.target diff --git a/roles/lokole/templates/celerybeat.sh.j2 b/roles/lokole/templates/celerybeat.sh.j2 new file mode 100644 index 000000000..f391cd4fd --- /dev/null +++ b/roles/lokole/templates/celerybeat.sh.j2 @@ -0,0 +1,6 @@ +#!/usr/bin/env sh + +'{{lokole_venv}}/bin/celery' \ + '--app=opwen_email_client.webapp.tasks' \ + 'beat' \ + '--loglevel=info' diff --git a/roles/lokole/templates/run-celery.sh.j2 b/roles/lokole/templates/run-celery.sh.j2 new file mode 100644 index 000000000..c401756f9 --- /dev/null +++ b/roles/lokole/templates/run-celery.sh.j2 @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +'{{lokole_venv}}/bin/celery' \ + '--app=opwen_email_client.webapp.tasks' \ + 'worker' \ + '--loglevel=info' \ + '--concurrency=2' From 88779966a1c2ba23af97fe32e1ddf04ee0709908 Mon Sep 17 00:00:00 2001 From: Adam Sclafani Date: Sun, 6 Sep 2020 13:00:54 -1000 Subject: [PATCH 2/8] add webapp restarter daemon --- roles/lokole/tasks/install.yml | 11 +++++++++++ roles/lokole/tasks/main.yml | 7 +++++++ roles/lokole/templates/restarter.service.j2 | 10 ++++++++++ roles/lokole/templates/webapp-restart.sh.j2 | 5 +++++ 4 files changed, 33 insertions(+) create mode 100644 roles/lokole/templates/restarter.service.j2 create mode 100644 roles/lokole/templates/webapp-restart.sh.j2 diff --git a/roles/lokole/tasks/install.yml b/roles/lokole/tasks/install.yml index 05ae02fa8..c436ea6d0 100644 --- a/roles/lokole/tasks/install.yml +++ b/roles/lokole/tasks/install.yml @@ -93,6 +93,12 @@ dest: "{{ lokole_run_directory }}/run-celery.sh" mode: a+x +- name: Install {{ lokole_run_directory }}/webapp-restart.sh from template + template: + src: webapp-restart.sh.j2 + dest: "{{ lokole_run_directory }}/webapp-restart.sh" + mode: a+x + - name: Install {{ lokole_run_directory }}/celerybeat.sh from template template: src: celerybeat.sh.j2 @@ -109,6 +115,11 @@ src: celerybeat.service.j2 dest: /etc/systemd/system/celerybeat.service +- name: Install /etc/systemd/system/restarter.service unit file from template + template: + src: restarter.service.j2 + dest: /etc/systemd/system/restarter.service + - name: Create admin user with password, for http://box{{ lokole_url }} # http://box/lokole shell: | . {{ lokole_run_directory }}/webapp_secrets.sh diff --git a/roles/lokole/tasks/main.yml b/roles/lokole/tasks/main.yml index 3ad999873..d7fd5a372 100644 --- a/roles/lokole/tasks/main.yml +++ b/roles/lokole/tasks/main.yml @@ -46,6 +46,13 @@ state: started when: lokole_enabled | bool +- name: Enable restarter service + systemd: + name: restarter + enabled: yes + state: started + when: lokole_enabled | bool + - name: Disable & Stop 'lokole' systemd service, if not lokole_enabled systemd: name: lokole diff --git a/roles/lokole/templates/restarter.service.j2 b/roles/lokole/templates/restarter.service.j2 new file mode 100644 index 000000000..1469e6f92 --- /dev/null +++ b/roles/lokole/templates/restarter.service.j2 @@ -0,0 +1,10 @@ +[Unit] +Description=Lokole webapp restarter +After=network.target + +[Service] +Type=simple +ExecStart=/bin/bash {{ lokole_run_directory }}/webapp-restart.sh + +[Install] +WantedBy=multi-user.target diff --git a/roles/lokole/templates/webapp-restart.sh.j2 b/roles/lokole/templates/webapp-restart.sh.j2 new file mode 100644 index 000000000..7b0fdce6b --- /dev/null +++ b/roles/lokole/templates/webapp-restart.sh.j2 @@ -0,0 +1,5 @@ +#!/usr/bin/env sh + +'{{lokole_venv}}/bin/manage.py' \ + 'restarter' \ + '--directory={{lokole_run_directory}}' From de7d0ee4662677738c1e823aa63aed945ce10948 Mon Sep 17 00:00:00 2001 From: Adam Sclafani Date: Sun, 6 Sep 2020 13:19:04 -1000 Subject: [PATCH 3/8] fix typo --- roles/lokole/tasks/install.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/lokole/tasks/install.yml b/roles/lokole/tasks/install.yml index c436ea6d0..2f00bbf0a 100644 --- a/roles/lokole/tasks/install.yml +++ b/roles/lokole/tasks/install.yml @@ -143,7 +143,7 @@ set_fact: lokole_installed: True -- name: "Add 'lokole_insta lled: True' to {{ iiab_state_file }}" +- name: "Add 'lokole_installed: True' to {{ iiab_state_file }}" lineinfile: path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml regexp: '^lokole_installed' From 968d2892d95066083ad1a20f00faa56566ff0741 Mon Sep 17 00:00:00 2001 From: Jerry Vonau Date: Wed, 9 Sep 2020 14:06:50 +0100 Subject: [PATCH 4/8] try cmdline in service file without helper scripts --- roles/lokole/tasks/install.yml | 48 +++++--------------- roles/lokole/tasks/main.yml | 11 +++-- roles/lokole/templates/celery.service.j2 | 2 +- roles/lokole/templates/celerybeat.service.j2 | 2 +- roles/lokole/templates/restarter.service.j2 | 3 +- 5 files changed, 24 insertions(+), 42 deletions(-) diff --git a/roles/lokole/tasks/install.yml b/roles/lokole/tasks/install.yml index 2f00bbf0a..6c9f7b7bb 100644 --- a/roles/lokole/tasks/install.yml +++ b/roles/lokole/tasks/install.yml @@ -75,11 +75,13 @@ file: state: directory path: "{{ lokole_run_directory }}" + mode: a+x - name: Install {{ lokole_run_directory }}/webapp_secrets.sh from template, to configure Lokole template: src: webapp_secrets.sh.j2 dest: "{{ lokole_run_directory }}/webapp_secrets.sh" + mode: a+x - name: Install {{ lokole_run_directory }}/webapp.sh from template, to configure Gunicorn template: @@ -87,39 +89,6 @@ dest: "{{ lokole_run_directory }}/webapp.sh" mode: a+x -- name: Install {{ lokole_run_directory }}/run-celery.sh from template - template: - src: run-celery.sh.j2 - dest: "{{ lokole_run_directory }}/run-celery.sh" - mode: a+x - -- name: Install {{ lokole_run_directory }}/webapp-restart.sh from template - template: - src: webapp-restart.sh.j2 - dest: "{{ lokole_run_directory }}/webapp-restart.sh" - mode: a+x - -- name: Install {{ lokole_run_directory }}/celerybeat.sh from template - template: - src: celerybeat.sh.j2 - dest: "{{ lokole_run_directory }}/celerybeat.sh" - mode: a+x - -- name: Install /etc/systemd/system/celery.service unit file from template - template: - src: celery.service.j2 - dest: /etc/systemd/system/celery.service - -- name: Install /etc/systemd/system/celerybeat.service unit file from template - template: - src: celerybeat.service.j2 - dest: /etc/systemd/system/celerybeat.service - -- name: Install /etc/systemd/system/restarter.service unit file from template - template: - src: restarter.service.j2 - dest: /etc/systemd/system/restarter.service - - name: Create admin user with password, for http://box{{ lokole_url }} # http://box/lokole shell: | . {{ lokole_run_directory }}/webapp_secrets.sh @@ -129,12 +98,19 @@ template: src: lokole.conf.j2 dest: "/etc/{{ apache_conf_dir }}/lokole.conf" + mode: 0666 when: apache_install | bool -- name: Install /etc/systemd/system/lokole.service unit file from template +- name: Install lokole's unit service files template: - src: lokole.service.j2 - dest: /etc/systemd/system/lokole.service + src: "{{ item.src }}" + dest: "{{ item.dest}}" + mode: 0666 + with_items: + - { src: 'lokole.service.j2', dest: '/etc/systemd/system/lokole.service' } + - { src: 'celery.service.j2', dest: '/etc/systemd/system/celery.service' } + - { src: 'celerybeat.service.j2', dest: '/etc/systemd/system/celerybeat.service' } + - { src: 'restarter.service.j2', dest: '/etc/systemd/system/lokole_restarter.service' } # RECORD Lokole AS INSTALLED diff --git a/roles/lokole/tasks/main.yml b/roles/lokole/tasks/main.yml index d7fd5a372..fd9490f83 100644 --- a/roles/lokole/tasks/main.yml +++ b/roles/lokole/tasks/main.yml @@ -36,7 +36,7 @@ systemd: name: celery enabled: yes - state: restarted + state: started when: lokole_enabled | bool - name: Enable celery beat service @@ -48,17 +48,22 @@ - name: Enable restarter service systemd: - name: restarter + name: lokole_restarter enabled: yes state: started when: lokole_enabled | bool - name: Disable & Stop 'lokole' systemd service, if not lokole_enabled systemd: - name: lokole + name: "{{ item }}" enabled: no state: stopped when: not lokole_enabled + with_items: + - lokole_restarter + - celerybeat + - celery + - lokole #- name: Enable/Disable/Restart Apache if primary - name: SHIM FOR NOW SO ALWAYS DO THE...Enable/Disable/Restart Apache diff --git a/roles/lokole/templates/celery.service.j2 b/roles/lokole/templates/celery.service.j2 index 5d542c696..7bef752fe 100644 --- a/roles/lokole/templates/celery.service.j2 +++ b/roles/lokole/templates/celery.service.j2 @@ -4,7 +4,7 @@ After=network.target [Service] Type=simple -ExecStart=/bin/bash {{ lokole_run_directory }}/run-celery.sh +ExecStart={{lokole_venv}}/bin/celery --app=opwen_email_client.webapp.tasks worker --loglevel=info --concurrency=2 ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill TERM $MAINPID diff --git a/roles/lokole/templates/celerybeat.service.j2 b/roles/lokole/templates/celerybeat.service.j2 index d54007144..ae2328443 100644 --- a/roles/lokole/templates/celerybeat.service.j2 +++ b/roles/lokole/templates/celerybeat.service.j2 @@ -4,7 +4,7 @@ After=network.target [Service] Type=simple -ExecStart=/bin/bash {{ lokole_run_directory }}/celerybeat.sh +ExecStart={{lokole_venv}}/bin/celery --app=opwen_email_client.webapp.tasks beat --loglevel=info [Install] WantedBy=multi-user.target diff --git a/roles/lokole/templates/restarter.service.j2 b/roles/lokole/templates/restarter.service.j2 index 1469e6f92..abad9780f 100644 --- a/roles/lokole/templates/restarter.service.j2 +++ b/roles/lokole/templates/restarter.service.j2 @@ -4,7 +4,8 @@ After=network.target [Service] Type=simple -ExecStart=/bin/bash {{ lokole_run_directory }}/webapp-restart.sh +WorkingDirectory={{lokole_run_directory}} +ExecStart={{lokole_venv}}/bin/manage.py restarter --directory={{lokole_run_directory}} [Install] WantedBy=multi-user.target From 2775c7600a88fddaf87056373cc6ca84dbb760d0 Mon Sep 17 00:00:00 2001 From: Jerry Vonau Date: Wed, 9 Sep 2020 14:49:45 +0100 Subject: [PATCH 5/8] remove .sh files --- roles/lokole/templates/celerybeat.sh.j2 | 6 ------ roles/lokole/templates/run-celery.sh.j2 | 7 ------- roles/lokole/templates/webapp-restart.sh.j2 | 5 ----- 3 files changed, 18 deletions(-) delete mode 100644 roles/lokole/templates/celerybeat.sh.j2 delete mode 100644 roles/lokole/templates/run-celery.sh.j2 delete mode 100644 roles/lokole/templates/webapp-restart.sh.j2 diff --git a/roles/lokole/templates/celerybeat.sh.j2 b/roles/lokole/templates/celerybeat.sh.j2 deleted file mode 100644 index f391cd4fd..000000000 --- a/roles/lokole/templates/celerybeat.sh.j2 +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env sh - -'{{lokole_venv}}/bin/celery' \ - '--app=opwen_email_client.webapp.tasks' \ - 'beat' \ - '--loglevel=info' diff --git a/roles/lokole/templates/run-celery.sh.j2 b/roles/lokole/templates/run-celery.sh.j2 deleted file mode 100644 index c401756f9..000000000 --- a/roles/lokole/templates/run-celery.sh.j2 +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env sh - -'{{lokole_venv}}/bin/celery' \ - '--app=opwen_email_client.webapp.tasks' \ - 'worker' \ - '--loglevel=info' \ - '--concurrency=2' diff --git a/roles/lokole/templates/webapp-restart.sh.j2 b/roles/lokole/templates/webapp-restart.sh.j2 deleted file mode 100644 index 7b0fdce6b..000000000 --- a/roles/lokole/templates/webapp-restart.sh.j2 +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env sh - -'{{lokole_venv}}/bin/manage.py' \ - 'restarter' \ - '--directory={{lokole_run_directory}}' From 764039df059d26750212c489b365e8c62fe2795d Mon Sep 17 00:00:00 2001 From: Jerry Vonau Date: Wed, 9 Sep 2020 15:02:24 +0100 Subject: [PATCH 6/8] Before= After= based on order of appearence in main.yml --- roles/lokole/templates/celery.service.j2 | 2 ++ roles/lokole/templates/celerybeat.service.j2 | 2 ++ roles/lokole/templates/restarter.service.j2 | 1 + 3 files changed, 5 insertions(+) diff --git a/roles/lokole/templates/celery.service.j2 b/roles/lokole/templates/celery.service.j2 index 7bef752fe..267cd4f37 100644 --- a/roles/lokole/templates/celery.service.j2 +++ b/roles/lokole/templates/celery.service.j2 @@ -1,6 +1,8 @@ [Unit] Description=Celery service After=network.target +After=lokole.service +Before=celerybeat.service [Service] Type=simple diff --git a/roles/lokole/templates/celerybeat.service.j2 b/roles/lokole/templates/celerybeat.service.j2 index ae2328443..e40e50cff 100644 --- a/roles/lokole/templates/celerybeat.service.j2 +++ b/roles/lokole/templates/celerybeat.service.j2 @@ -1,6 +1,8 @@ [Unit] Description=Celery beat timed service After=network.target +After=celery.service +Before=lokole_restarter.service [Service] Type=simple diff --git a/roles/lokole/templates/restarter.service.j2 b/roles/lokole/templates/restarter.service.j2 index abad9780f..25faa6145 100644 --- a/roles/lokole/templates/restarter.service.j2 +++ b/roles/lokole/templates/restarter.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Lokole webapp restarter After=network.target +After=celerybeat.service [Service] Type=simple From bf9016b39f528f7e8e32faa3ddeceb243a794f3c Mon Sep 17 00:00:00 2001 From: Jerry Vonau Date: Wed, 9 Sep 2020 15:26:31 +0100 Subject: [PATCH 7/8] Before the editing starts.... --- roles/lokole/tasks/install.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/lokole/tasks/install.yml b/roles/lokole/tasks/install.yml index 6c9f7b7bb..59ef6e09b 100644 --- a/roles/lokole/tasks/install.yml +++ b/roles/lokole/tasks/install.yml @@ -101,7 +101,7 @@ mode: 0666 when: apache_install | bool -- name: Install lokole's unit service files +- name: Install Lokole's unit service files template: src: "{{ item.src }}" dest: "{{ item.dest}}" From d2f9dd9705e29af5944dd78d193a6776bc5205e5 Mon Sep 17 00:00:00 2001 From: Jerry Vonau Date: Wed, 9 Sep 2020 12:20:53 -0500 Subject: [PATCH 8/8] heard the whining.. 0644 it is --- roles/lokole/tasks/install.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/lokole/tasks/install.yml b/roles/lokole/tasks/install.yml index 59ef6e09b..70f0dad3d 100644 --- a/roles/lokole/tasks/install.yml +++ b/roles/lokole/tasks/install.yml @@ -98,14 +98,14 @@ template: src: lokole.conf.j2 dest: "/etc/{{ apache_conf_dir }}/lokole.conf" - mode: 0666 + mode: 0644 when: apache_install | bool - name: Install Lokole's unit service files template: src: "{{ item.src }}" dest: "{{ item.dest}}" - mode: 0666 + mode: 0644 with_items: - { src: 'lokole.service.j2', dest: '/etc/systemd/system/lokole.service' } - { src: 'celery.service.j2', dest: '/etc/systemd/system/celery.service' }