--- # file: roles/postgres-explain-visualizer/tasks/install.yml - name: "install npm" apt: name: npm - name: "system group" group: name: pev - name: "system user" user: name: pev group: pev home: /home/pev - block: - name: "remove old install backup dir /opt/pev_backup" file: path: /opt/pev_backup state: absent - name: "stop apache2" systemd: name: "apache2.service" state: stopped - name: "backup current install to /opt/pev" copy: remote_src: yes src: /opt/pev dest: /opt/pev_backup when: - pev_install_dir.stat.exists - pev_update_now or global_update_now - pev_current_version != pev_needed_version - name: "/opt/pev" file: path: /opt/pev state: directory owner: pev group: pev notify: restart apache2 - name: "download from {{ pev_git_url }}" git: repo: https://github.com/dalibo/explain.dalibo.com version: "{{ pev_needed_version }}" dest: /opt/pev become: true become_user: pev - name: "register version in /opt/pev/VERSION" copy: dest: /opt/pev/VERSION content: "{{ pev_needed_version }}" owner: pev group: pev - name: "npm install" community.general.npm: path: /opt/pev become: true become_user: pev - name: "npm run build" command: npm run build args: chdir: /opt/pev become: true become_user: pev - name: "replace psycopg2-binary fixed version with latest version" lineinfile: dest: /opt/pev/requirements.txt regexp: "^psycopg2-binary" line: psycopg2-binary - name: "pip upgrade pip in virtualenv" pip: name: pip extra_args: --upgrade virtualenv: /opt/pev/venv virtualenv_command: /usr/bin/python3 -m venv become: true become_user: pev when: not ansible_check_mode - name: "pip install python requirements" pip: requirements: /opt/pev/requirements.txt virtualenv: /opt/pev/venv virtualenv_command: /usr/bin/python3 -m venv become: true become_user: pev when: not ansible_check_mode - name: "pip install gunicorn" pip: name: gunicorn extra_args: --upgrade virtualenv: /opt/pev/venv virtualenv_command: /usr/bin/python3 -m venv become: true become_user: pev when: not ansible_check_mode - name: "/opt/pev/config.py" template: src: config.py.j2 dest: /opt/pev/config.py owner: pev group: pev mode: 0644 register: conf - name: "create or migrate database" shell: cmd: | source venv/bin/activate flask db upgrade chdir: /opt/pev args: executable: /bin/bash environment: FLASK_APP: app become: true become_user: pev - name: "/opt/pev/wsgi.py" copy: src: wsgi.py dest: /opt/pev/wsgi.py owner: pev group: pev notify: restart pev