138 lines
3.1 KiB
YAML
138 lines
3.1 KiB
YAML
- name: create sites dir
|
|
file:
|
|
path: /srv/sites
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
|
|
- name: create project dir
|
|
file:
|
|
path: "{{ app_dir }}"
|
|
state: directory
|
|
owner: "{{ app_user }}"
|
|
group: "{{ app_user }}"
|
|
mode: 0755
|
|
|
|
- name: clone project
|
|
become_user: "{{ app_user }}"
|
|
git:
|
|
repo: "https://git.fudiggity.nl/sonny/newsreader.git"
|
|
dest: "{{ app_dir }}"
|
|
version: "{{ app_branch }}"
|
|
update: yes
|
|
force: yes
|
|
notify:
|
|
- install npm packages
|
|
- build static files
|
|
- run migrations
|
|
- collect static files
|
|
|
|
- name: include poetry tasks
|
|
include_role:
|
|
name: common
|
|
tasks_from: "poetry.yml"
|
|
vars:
|
|
poetry_user: "{{ app_user }}"
|
|
poetry_dir: "/home/{{ app_user }}/.poetry"
|
|
|
|
- name: run poetry tasks
|
|
block:
|
|
- name: retrieve user $PATH
|
|
shell: "echo $PATH"
|
|
become_user: "{{ app_user }}"
|
|
register: path_stats
|
|
|
|
- name: set poetry user variables
|
|
set_fact:
|
|
poetry_user_path: "{{ path_stats.stdout }}"
|
|
|
|
- name: set default venv python version
|
|
become_user: "{{ app_user }}"
|
|
command: "poetry env use python3.7"
|
|
args:
|
|
chdir: "{{ app_dir }}"
|
|
environment:
|
|
PATH: "/home/{{ app_user }}/.local/bin:{{ poetry_user_path }}"
|
|
|
|
- name: install project dependencies
|
|
become_user: "{{ app_user }}"
|
|
command: "poetry install" # noqa 301
|
|
args:
|
|
chdir: "{{ app_dir }}"
|
|
environment:
|
|
PATH: "/home/{{ app_user }}/.local/bin:{{ poetry_user_path }}"
|
|
|
|
- name: setup env file
|
|
template:
|
|
src: "env.j2"
|
|
dest: "{{ app_dir }}/.env"
|
|
owner: "{{ app_user }}"
|
|
group: "{{ app_user }}"
|
|
mode: 0600
|
|
|
|
- name: setup gunicorn service
|
|
template:
|
|
src: "{{ item.src }}"
|
|
dest: "{{ item.dest }}"
|
|
owner: root
|
|
group: root
|
|
mode: "{{ item.mode }}"
|
|
loop:
|
|
- {
|
|
src: "gunicorn-socket.j2",
|
|
dest: "/etc/systemd/system/gunicorn.socket",
|
|
"mode": "0644",
|
|
}
|
|
- {
|
|
src: "gunicorn.j2",
|
|
dest: "/etc/systemd/system/gunicorn.service",
|
|
"mode": "0644",
|
|
}
|
|
notify:
|
|
- restart gunicorn socket
|
|
- stop gunicorn service
|
|
|
|
- name: create conf dir
|
|
become_user: "{{ app_user }}"
|
|
file:
|
|
path: "/home/{{ app_user }}/.config/conf.d"
|
|
state: directory
|
|
owner: "{{ app_user }}"
|
|
group: "{{ app_user }}"
|
|
mode: 0750
|
|
|
|
- name: create celery run dir
|
|
file:
|
|
path: /run/celery
|
|
state: directory
|
|
owner: "{{ app_user }}"
|
|
group: "{{ app_user }}"
|
|
mode: 0755
|
|
|
|
- name: copy celery config
|
|
template:
|
|
src: "{{ item.src }}"
|
|
dest: "{{ item.dest }}"
|
|
owner: "{{ app_user }}"
|
|
group: "{{ app_user }}"
|
|
mode: "{{ item.mode }}"
|
|
loop:
|
|
- {
|
|
src: "celery.j2",
|
|
dest: "/etc/systemd/system/celery.service",
|
|
"mode": "0644",
|
|
}
|
|
- {
|
|
src: "celerybeat.j2",
|
|
dest: "/etc/systemd/system/celerybeat.service",
|
|
"mode": "0644",
|
|
}
|
|
- {
|
|
src: "celery.env.j2",
|
|
dest: "/home/newsreader/.config/conf.d/celery",
|
|
"mode": "0640",
|
|
}
|
|
notify:
|
|
- restart celery
|
|
- restart celerybeat
|