- 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