talas-group/04_INFRA_DEPLOIEMENT/Ansible/roles/postgres-explain-visualizer/tasks/install.yml
senke 66471934af Initial commit: Talas Group project management & documentation
Knowledge base of ~80+ markdown files across 14 domains (00-13),
Logseq graph, hardware design files (KiCAD), infrastructure configs,
and talas-wiki static site.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 20:10:41 +02:00

136 lines
2.8 KiB
YAML

---
# 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