77 lines
1.9 KiB
YAML
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]
|