Includes: API (Express/TypeScript), Astro site, Python workers, document generators, FCC compliance tools, Canada CRTC formation, Ansible infrastructure, and deployment scripts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
58 lines
1.5 KiB
YAML
58 lines
1.5 KiB
YAML
---
|
|
- name: Create PostgreSQL data directory
|
|
ansible.builtin.file:
|
|
path: /opt/performancewest/pgdata
|
|
state: directory
|
|
owner: "{{ deploy_user }}"
|
|
group: "{{ deploy_user }}"
|
|
mode: "0700"
|
|
|
|
- name: Create backup directory
|
|
ansible.builtin.file:
|
|
path: "{{ pg_backup_dir }}"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0700"
|
|
|
|
- name: Start PostgreSQL container
|
|
ansible.builtin.command:
|
|
cmd: docker compose up -d postgres
|
|
chdir: /opt/performancewest
|
|
register: pg_start
|
|
changed_when: "'Started' in pg_start.stderr or 'Creating' in pg_start.stderr"
|
|
|
|
- name: Wait for PostgreSQL to accept connections
|
|
ansible.builtin.command:
|
|
cmd: >-
|
|
docker compose exec -T postgres
|
|
pg_isready -U {{ pg_user }} -d {{ pg_database }}
|
|
chdir: /opt/performancewest
|
|
register: pg_ready
|
|
retries: 12
|
|
delay: 5
|
|
until: pg_ready.rc == 0
|
|
changed_when: false
|
|
|
|
- name: Run database migrations
|
|
ansible.builtin.command:
|
|
cmd: docker compose exec -T api npm run db:migrate
|
|
chdir: /opt/performancewest
|
|
register: db_migrate
|
|
changed_when: "'migrated' in db_migrate.stdout"
|
|
|
|
- name: Deploy PostgreSQL backup script
|
|
ansible.builtin.template:
|
|
src: pg-backup.sh.j2
|
|
dest: /usr/local/bin/pg-backup.sh
|
|
owner: root
|
|
group: root
|
|
mode: "0700"
|
|
|
|
- name: Set up daily PostgreSQL backup cron
|
|
ansible.builtin.cron:
|
|
name: "Daily PostgreSQL backup"
|
|
minute: "0"
|
|
hour: "2"
|
|
job: "/usr/local/bin/pg-backup.sh >> /var/log/pg-backup.log 2>&1"
|
|
user: root
|