- name: install npm packages become_user: "{{ app_user }}" command: /usr/bin/npm install args: chdir: "{{ app_dir }}" - name: build static files become_user: "{{ app_user }}" command: /usr/bin/npm run build:prod args: chdir: "{{ app_dir }}" - name: run migrations become_user: "{{ app_user }}" django_manage: command: migrate app_path: "{{ app_dir }}/src/" virtualenv: "{{ app_dir }}/.venv" settings: "newsreader.conf.production" - name: collect static files become_user: "{{ app_user }}" django_manage: command: collectstatic app_path: "{{ app_dir }}/src/" virtualenv: "{{ app_dir }}/.venv" settings: "newsreader.conf.production" - name: setup env file template: src: "templates/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: "templates/gunicorn-socket.j2", dest: "/etc/systemd/system/gunicorn.socket", "mode": "0644", } - { src: "templates/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: "templates/celery.j2", dest: "/etc/systemd/system/celery.service", "mode": "0644", } - { src: "templates/celerybeat.j2", dest: "/etc/systemd/system/celerybeat.service", "mode": "0644", } - { src: "templates/celery.env.j2", dest: "/home/newsreader/.config/conf.d/celery", "mode": "0640", } notify: - restart celery - restart celerybeat