diff --git a/roles/formsubmit/files/formsubmit.service b/roles/formsubmit/files/formsubmit.service new file mode 100644 index 0000000..580ae22 --- /dev/null +++ b/roles/formsubmit/files/formsubmit.service @@ -0,0 +1,10 @@ +[Unit] +Description=HTML Form Submit Handler +After=network.target + +[Service] +ExecStart=/usr/local/formsubmit/bin/uvicorn formsubmit:app +User=apache + +[Install] +WantedBy=multi-user.target diff --git a/roles/formsubmit/handlers/main.yml b/roles/formsubmit/handlers/main.yml new file mode 100644 index 0000000..fd0f62d --- /dev/null +++ b/roles/formsubmit/handlers/main.yml @@ -0,0 +1,8 @@ +- name: reload systemd + systemd: + daemon_reload: true + +- name: restart formsubmit + service: + name: formsubmit + state: restarted diff --git a/roles/formsubmit/tasks/main.yml b/roles/formsubmit/tasks/main.yml new file mode 100644 index 0000000..979e1b9 --- /dev/null +++ b/roles/formsubmit/tasks/main.yml @@ -0,0 +1,39 @@ +- name: ensure latest formsubmit is installed # noqa package-latest + environment: + PIP_FIND_LINKS: http://files.pyrocufflink.blue/wheels/formsubmit + PIP_TRUSTED_HOST: files.pyrocufflink.blue + pip: + name: formsubmit + virtualenv: /usr/local/formsubmit + virtualenv_command: python3.9 -m venv + state: latest + notify: + - restart formsubmit + tags: + - install + +- name: ensure formsubmit deployment dependencies are installed + pip: + name: + - uvicorn + virtualenv: /usr/local/formsubmit + state: present + tags: + - install + +- name: ensure formsubmit systemd unit is installed + copy: + src: formsubmit.service + dest: /etc/systemd/system/formsubmit.service + mode: u=rw,go=r + notify: + - reload systemd + - restart formsubmit + tags: + - systemd + +- name: ensure formsubmit configuration directory exists + file: + path: /etc/formsubmit + mode: u=rwx,go=rx + state: directory diff --git a/websites.yml b/websites.yml index 429c04a..d34a803 100755 --- a/websites.yml +++ b/websites.yml @@ -3,6 +3,8 @@ apache_default_ssl_vhost: false roles: - apache + - role: formsubmit + tags: formsubmit - role: websites/pyrocufflink.net tags: websites/pyrocufflink.net - role: websites/dustin.hatch.name