awx/installer/roles/local_docker/tasks/upgrade_postgres.yml
Christian M. Adams 57c3b9ab17 Run PG upgrade tasks in container because of permissions
* update pg references
2021-01-13 17:27:03 -05:00

44 lines
1.6 KiB
YAML

---
- name: Register temporary docker container
set_fact:
container_command: "docker run -v '{{ postgres_data_dir | realpath }}:/var/lib/postgresql' centos:8 bash "
- name: Check for existing Postgres data (run from inside the container for access to file)
shell:
cmd: "{{ container_command }} [[ -f /var/lib/postgresql/10/data/PG_VERSION ]] && echo 'exists'"
register: pg_version_file
ignore_errors: true
- name: Record Postgres version
shell: "{{ container_command }} cat var/lib/postgresql/10/data/PG_VERSION"
register: old_pg_version
when: pg_version_file.stdout == 'exists'
- name: Determine whether to upgrade postgres
set_fact:
upgrade_postgres: "{{ old_pg_version is defined and old_pg_version.stdout == '10' | bool }}"
when: not old_pg_version.skipped | bool
- name: Stop AWX before upgrading postgres
docker_service:
project_src: "{{ docker_compose_dir }}"
stopped: true
when: upgrade_postgres | bool
- name: Upgrade Postgres
shell: |
docker run --rm \
-v {{ postgres_data_dir | realpath }}:/var/lib/postgresql \
-e PGUSER={{ pg_username }} -e POSTGRES_INITDB_ARGS="-U {{ pg_username }}" \
tianon/postgres-upgrade:10-to-12 --username={{ pg_username }}
when: upgrade_postgres | bool
- name: Copy old pg_hba.conf
shell: "{{ container_command }} cp /var/lib/postgresql/10/data/pg_hba.conf /var/lib/postgresql/12/data/pg_hba.conf"
when: upgrade_postgres | bool
- name: Remove old data directory
shell: "{{ container_command }} rm -rf /var/lib/postgresql/10/data"
when: compose_start_containers|bool