--- - name: Ensuring the containers up kolla_docker: name: "{{ item.name }}" action: "get_container_state" register: container_state failed_when: container_state.Running == false when: inventory_hostname in groups[item.group] with_items: - { name: haproxy, group: haproxy } - { name: keepalived, group: haproxy } - include: config.yml - name: Check the configs command: docker exec {{ item.name }} /usr/local/bin/kolla_set_configs --check changed_when: false failed_when: false register: check_results when: inventory_hostname in groups[item.group] with_items: - { name: haproxy, group: haproxy } - { name: keepalived, group: haproxy } - name: Containers config strategy kolla_docker: name: "{{ item.name }}" action: "get_container_env" register: container_envs when: inventory_hostname in groups[item.group] with_items: - { name: haproxy, group: haproxy } - { name: keepalived, group: haproxy } - name: Remove the containers kolla_docker: name: "{{ item[0]['name'] }}" action: "remove_container" register: remove_containers when: - config_strategy == "COPY_ONCE" or item[1]['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE' - item[2]['rc'] == 1 - inventory_hostname in groups[item[0]['group']] with_together: - [{ name: haproxy, group: haproxy }, { name: keepalived, group: haproxy }] - container_envs.results - check_results.results - include: start.yml when: remove_containers.changed # container_envs.results is a list of two elements, first corresponds to # haproxy container result and second to keepalived container result and the # same applicable for check_results.results - name: Ensuring latest haproxy config is used command: docker exec haproxy /usr/local/bin/kolla_ensure_haproxy_latest_config register: status changed_when: status.stdout.find('changed') != -1 when: - config_strategy == 'COPY_ALWAYS' - container_envs.results[0]['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE' - check_results.results[0]['rc'] == 1 - inventory_hostname in groups['haproxy'] - name: Restart keepalived container kolla_docker: name: "keepalived" action: "restart_container" when: - config_strategy == 'COPY_ALWAYS' - container_envs.results[1]['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE' - check_results.results[1]['rc'] == 1 - inventory_hostname in groups['haproxy']