- 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