diff --git a/defaults/main.yml b/defaults/main.yml index 6931d21..9a4ee07 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -5,6 +5,7 @@ etebase__user: 'etebase' etebase__user_home: '/var/lib/etebase' etebase__shell: '/bin/false' etebase__venv: "{{ etebase__user_home }}/venv" +etebase__socket: '/tmp/etebase_server.sock' # package state etebase__package_state: 'present' @@ -38,5 +39,10 @@ etebase__database_options_extra: '' etebase__ldap_extra: '' etebase__config_extra: '' +# webosting +etebase__restart_webserver: false +etebase__webserver_service: 'nginx.service' +etebase__systemd_setup: false + # should we do a version check? (recomended) submodules_versioncheck: false diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..0254634 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,14 @@ +--- +- name: "Systemctl restart etebase.service" + become: true + ansible.builtin.service: + name: etebase.service + state: restarted + when: ansible_service_mgr == "systemd" + +- name: "Systemctl restart webserver" + become: true + ansible.builtin.systemd: + name: "{{ etebase__webserver_service }}" + state: restarted + when: ansible_service_mgr == "systemd" and etebase__restart_webserver | bool diff --git a/tasks/main.yml b/tasks/main.yml index 2d0a9da..ad5628d 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -20,3 +20,7 @@ - name: Run ./manage.py migrate ansible.builtin.include_tasks: migrate.yml + +- name: Setup Systemd Service + ansible.builtin.include_tasks: systemd.yml + when: etebase__systemd_setup | bool diff --git a/tasks/systemd.yml b/tasks/systemd.yml new file mode 100644 index 0000000..2da141a --- /dev/null +++ b/tasks/systemd.yml @@ -0,0 +1,17 @@ +--- +- name: "Setup systemd service" + become: true + ansible.builtin.template: + src: 'templates/etebase.service.j2' + dest: /lib/systemd/system/etebase.service + owner: root + group: root + mode: 0644 + notify: + - "Systemctl restart etebase.service" + - "Systemctl restart webserver" + +- name: "Reload systemd" + become: true + ansible.builtin.systemd: + daemon_reload: true diff --git a/templates/etebase.service.j2 b/templates/etebase.service.j2 new file mode 100644 index 0000000..5e1b975 --- /dev/null +++ b/templates/etebase.service.j2 @@ -0,0 +1,11 @@ +# {{ ansible_managed }} + +[Unit] +Description=Execute the etebase server. + +[Service] +WorkingDirectory={{ etebase__user_home }}/etebase_{{ etebase_version_target }} +ExecStart={{ etebase__venv }}/bin/uvicorn etebase_server.asgi:application --uds {{ etebase__socket }} + +[Install] +WantedBy=multi-user.target diff --git a/vars/main.yml b/vars/main.yml index 04660d7..71b6123 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -3,5 +3,5 @@ etebase__repo: 'https://github.com/etesync/server.git' etebase__repo_api: 'https://api.github.com/repos/etesync/server/tags' # versionscheck -playbook_version_number: 6 # should be a integer +playbook_version_number: 7 # should be a integer playbook_version_path: 'role-etebase'