1. Stop Ansible Tower daemons on all AT nodes:
ansible-tower-service stop
2. Use psql to connect to the DB:
psql "host=dbname01.postgres.database.azure.com port=5432 dbname=postgres user=dbname01admin@dbname01 password=<your_pass> sslmode=require"
3. List available databases:
postgres=> \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------------------+---------------------+----------+----------------------------+----------------------------+------------------------------------- awx | dbname01admin | UTF8 | en-US | en-US
4. Rename the existing awx db to awx2 (postgres will not allow you to do any changes if there are any Ansible Tower daemons running and connecting to the database):
postgres=> alter database awx rename to awx2;
5. Confirm the db has been renamed:
postgres=> \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------------------+---------------------+----------+----------------------------+----------------------------+------------------------------------- awx2 | dbname01admin | UTF8 | en-us | en-us
6. Create a new awx db if required (this step is required if you would like to use awx database as a target to restore from the postgresql dump):
postgres=> CREATE DATABASE awx WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'en-US' LC_CTYPE = 'en-US';
7 . Update the /etc/tower/conf.d/postgres.py on all the nodes:
FROM:
# Ansible Tower database settings. DATABASES = { 'default': { 'ATOMIC_REQUESTS': True, 'ENGINE': 'awx.main.db.profiled_pg', 'NAME': 'awx', 'USER': 'dbname01admin@dbname01', 'PASSWORD': """PASSWORD""", 'HOST': 'dbname01.postgres.database.azure.com', 'PORT': '5432', 'OPTIONS': { 'sslmode': 'prefer', 'sslrootcert': '/etc/pki/tls/certs/ca-bundle.crt', }, } }
TO:
# Ansible Tower database settings. DATABASES = { 'default': { 'ATOMIC_REQUESTS': True, 'ENGINE': 'awx.main.db.profiled_pg', 'NAME': 'awx2', 'USER': 'dbname01admin@dbname01', 'PASSWORD': """PASSWORD""", 'HOST': 'dbname01.postgres.database.azure.com', 'PORT': '5432', 'OPTIONS': { 'sslmode': 'prefer', 'sslrootcert': '/etc/pki/tls/certs/ca-bundle.crt', }, } }
8. Start the ansible tower on all nodes:
ansible-tower-service start
9. Verify the nodes:
# awx-manage list_instances [tower capacity=411] node01 capacity=137 version=3.8.4 heartbeat="2021-11-19 02:39:07" node02 capacity=137 version=3.8.4 heartbeat="2021-11-19 02:39:15" node03 capacity=137 version=3.8.4 heartbeat="2021-11-19 02:38:57"