1
0
mirror of https://github.com/ansible/awx.git synced 2024-10-27 17:55:10 +03:00

Implement local docker pg upgrade

This commit is contained in:
Shane McDonald 2019-09-09 20:18:01 -04:00 committed by Christian Adams
parent ec1e93cc69
commit 036567817e
2 changed files with 52 additions and 3 deletions

View File

@ -1,2 +1,52 @@
---
- name: Check for existing Postgres data
stat:
path: "{{ postgres_data_dir }}/pgdata/PG_VERSION"
register: pg_version_file
- name: Record Postgres version
set_fact:
old_pg_version: "{{ lookup('file', postgres_data_dir + '/pgdata/PG_VERSION') }}"
when: pg_version_file.stat.exists
- name: Determine whether to upgrade postgres
set_fact:
upgrade_postgres: "{{ old_pg_version is defined and old_pg_version == '9.6' }}"
- name: Set up new postgres paths pre-upgrade
file:
state: directory
path: "{{ item }}"
recurse: yes
when: upgrade_postgres | bool
with_items:
- "{{ postgres_data_dir }}/10/data"
- name: Stop AWX before upgrading postgres
docker_service:
project_src: "{{ docker_compose_dir }}"
stopped: yes
when: upgrade_postgres | bool
- name: Upgrade Postgres
shell: |
docker run --rm \
-v {{ postgres_data_dir }}/pgdata:/var/lib/postgresql/9.6/data \
-v {{ postgres_data_dir }}/10/data:/var/lib/postgresql/10/data \
-e PGUSER={{ pg_username }} -e POSTGRES_INITDB_ARGS="-U {{ pg_username }}" \
tianon/postgres-upgrade:9.6-to-10 --username={{ pg_username }}
when: upgrade_postgres | bool
- name: Copy old pg_hba.conf
copy:
src: "{{ postgres_data_dir + '/pgdata/pg_hba.conf' }}"
dest: "{{ postgres_data_dir + '/10/data/' }}"
when: upgrade_postgres | bool
- name: Remove old data directory
file:
path: "{{ postgres_data_dir + '/pgdata' }}"
state: absent
- import_tasks: set_image.yml
- import_tasks: compose.yml

View File

@ -128,16 +128,15 @@ services:
{% if pg_hostname is not defined %}
postgres:
image: centos/postgresql-10-centos7
image: postgres:10
container_name: awx_postgres
restart: unless-stopped
volumes:
- {{ postgres_data_dir }}:/var/lib/postgresql/data:Z
- {{ postgres_data_dir }}/10/data/:/var/lib/postgresql/data/pgdata:Z
environment:
POSTGRES_USER: {{ pg_username }}
POSTGRES_PASSWORD: {{ pg_password }}
POSTGRES_DB: {{ pg_database }}
POSTGRESQL_ADMIN_PASSWORD: 'postgrespass' # TODO: Remove This
PGDATA: /var/lib/postgresql/data/pgdata
http_proxy: {{ http_proxy | default('') }}
https_proxy: {{ https_proxy | default('') }}