infra/roles/pasteque/tasks/main.yml

77 lines
1.9 KiB
YAML

---
- block:
- name: User
user:
system: yes
name: "{{ owner }}"
when: owner is defined
- name: .ssh directory
file:
path: "~{{ owner }}/.ssh"
state: directory
owner: "{{ owner }}"
mode: 0755
when: owner is defined
- name: Deploy key
blockinfile:
create: yes
owner: "{{ owner }}"
mode: 0644
path: "~{{ owner }}/.ssh/authorized_keys"
marker: "<!-- {mark} ANSIBLE MANAGED BLOCK: Deploy key for {{ domain }} -->"
block: "{{ public_deploy_key }}"
when: owner is defined and public_deploy_key is defined
- name: Configure nginx
template:
src: nginx.conf
dest: "/etc/nginx/conf.d/{{ domain }}.conf"
notify: reload nginx
- name: Install gunicorn in venv
pip:
name: gunicorn
virtualenv_command: "/usr/bin/python3 -m venv"
virtualenv: "$HOME/.venv/"
become: true
become_user: "{{ owner }}"
- name: Install dependencies in venv
pip:
requirements: "$HOME/pasteque/requirements.txt"
virtualenv_command: "/usr/bin/python3 -m venv"
virtualenv: "$HOME/.venv/"
become: true
become_user: "{{ owner }}"
- name: Configure systemd
copy:
dest: /etc/systemd/system/pasteque.service
content: |
[Unit]
Description=Pasteque
After=network.target
[Service]
PIDFile={{ path }}/gunicorn.pid
User={{ owner }}
Group={{ owner }}
RuntimeDirectory=pasteque
WorkingDirectory={{ path }}/pasteque/
ExecStart={{ path }}/.venv/bin/gunicorn -t 120 -w 1 --pid {{ path }}/gunicorn.pid \
--bind 127.0.0.1:8049 webtools.wsgi
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- name: Start pasteque
service: name=pasteque enabled=yes state=started daemon_reload=yes
tags: [pasteque]