ansible/roles/awx/tasks/main.yml
2021-06-10 14:41:21 +02:00

101 lines
3.3 KiB
YAML

---
#
# Check if there is already a container from the AWX deployment
#
- name: check if containers with prefix {{ awx_prefix }} already exist
docker_container_info:
name: "{{ awx_prefix }}_postgres_1"
register: postgres_container
#
# Check if there is already a volume containing the database from the AWX deployment
#
- name: check if volume with prefix {{ awx_prefix }} already exist
docker_volume_info:
name: "{{ awx_prefix }}_awx_db"
register: postgres_volume
#
# Destroy all related containers from a previous deployment
# if postgres container exists and the awx_force_deployment
# is set to true
#
- name: bring down awx docker-compose project
docker_compose:
project_src: "{{ awx_composedir }}"
services: postgres
remove_orphans: true
state: absent
files: [ 'docker-compose.yml', 'docker-compose.override.yml' ]
register: compose_output
when:
- postgres_container.exists == True
- awx_force_deployment|default(False)|bool == True
- awx_keep_existing|default(True)|bool == False
#
# Destroy the awx_db volume containing the AWX database if
# the awx_force_deployment is set to true
#
- name: cleanup awx_db volume using docker volume rm
docker_volume:
name: "{{ awx_prefix }}_awx_db"
state: absent
when:
- awx_force_deployment|default(False)|bool == True
- awx_keep_existing|default(True)|bool == False
#
# Destroy the all redis_socket volumes. The number is determined
# by the variable 'cluster_node_count' (default=1). Volumes are only destroyed
# if the awx_force_deployment is set to true
#
- name: cleanup redis_socket volumes using docker volume rm
docker_volume:
name: "{{ awx_prefix }}_redis_socket_{{ item }}"
state: absent
with_sequence: start=1 end={{ cluster_node_count|default(1) }} stride=1
when:
- awx_force_deployment|default(False)|bool == True
- awx_keep_existing|default(True)|bool == False
#
# Destroy the all receptor volumes. The number is determined
# by the variable 'cluster_node_count' (default=1). Volumes are only destroyed
# if the awx_force_deployment is set to true
#
- name: cleanup receptor volumes using docker volume rm
docker_volume:
name: "{{ awx_prefix }}_receptor_{{ item }}"
state: absent
with_sequence: start=1 end={{ cluster_node_count|default(1) }} stride=1
when:
- awx_force_deployment|default(False)|bool == True
- awx_keep_existing|default(True)|bool == False
#
# run the steps to deploy AWX from a dedicated
# YAML file. This is only performed if no postgres
# container or volume exists. This can be overwritten
# by setting the awx_force_deployment to true
#
- name: deploy awx using awx2_deploy.yml
include_tasks:
awx2_deploy.yml
when:
- postgres_container.exists == False or
(awx_force_deployment|default(False)|bool == True)
- postgres_volume.exists == False or
(awx_force_deployment|default(False)|bool == True)
#
# write a message if depolyment is skipped
#
- name: information
debug:
msg: "AWX Deployment was skipped because either the awx_db volume or a postgres_container exists. You may force deployment by setting awx_force_deployment to true."
when:
- (postgres_container.exists == True and awx_force_deployment|default(False)|bool == False) or
(postgres_volume.exists == True and awx_force_deployment|default(False)|bool == False)
...