--- - name: Ensuring the containers running neutron-server and neutron agents are up kolla_docker: name: "{{ item.name }}" action: "get_container_state" register: neutron_container_states failed_when: neutron_container_states.Running == false when: - "{{ item.enabled|default(True) }}" - inventory_hostname in groups[item.group] with_items: - { name: neutron_server, group: neutron-server } - { name: neutron_dhcp_agent, group: neutron-dhcp-agent } - { name: neutron_l3_agent, group: neutron-l3-agent } - { name: neutron_l3_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" } - { name: neutron_lbaas_agent, group: neutron-lbaas-agent, enabled: "{{ enable_neutron_lbaas | bool }}" } - { name: neutron_metadata_agent, group: neutron-metadata-agent } - { name: neutron_metadata_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" } - { name: neutron_vpnaas_agent, group: neutron-vpnaas-agent, enabled: "{{ enable_neutron_vpnaas | bool }}" } - name: Ensuring the neutron_openvswitch_agent container is up kolla_docker: name: neutron_openvswitch_agent action: "get_container_state" register: openvswitch_agent_container_states failed_when: openvswitch_agent_container_states.Running == false when: - neutron_plugin_agent == "openvswitch" - ( ( inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent'] and not enable_nova_fake | bool ) or ( inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent'] and enable_nova_fake | bool ) ) - name: Ensuring the neutron_linuxbridge_agent container is up kolla_docker: name: neutron_linuxbridge_agent action: "get_container_state" register: linuxbridge_agent_container_states failed_when: linuxbridge_agent_container_states.Running == false when: - neutron_plugin_agent == "linuxbridge" - (inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent']) - include: config.yml - name: Check the configs in containers running neutron-server and neutron agents command: docker exec {{ item.name }} /usr/local/bin/kolla_set_configs --check changed_when: false failed_when: false register: neutron_check_results when: - "{{ item.enabled|default(True) }}" - inventory_hostname in groups[item.group] with_items: - { name: neutron_server, group: neutron-server } - { name: neutron_dhcp_agent, group: neutron-dhcp-agent } - { name: neutron_l3_agent, group: neutron-l3-agent } - { name: neutron_l3_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" } - { name: neutron_lbaas_agent, group: neutron-lbaas-agent, enabled: "{{ enable_neutron_lbaas | bool }}" } - { name: neutron_metadata_agent, group: neutron-metadata-agent } - { name: neutron_metadata_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" } - { name: neutron_vpnaas_agent, group: neutron-vpnaas-agent, enabled: "{{ enable_neutron_vpnaas | bool }}" } - name: Check the configs in the neutron_openvswitch_agent container command: docker exec neutron_openvswitch_agent /usr/local/bin/kolla_set_configs --check changed_when: false failed_when: false register: openvswitch_agent_check_results when: - neutron_plugin_agent == "openvswitch" - ( ( inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent'] and not enable_nova_fake | bool ) or ( inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent'] and enable_nova_fake | bool ) ) - name: Check the configs in the neutron_linuxbridge_agent container command: docker exec neutron_linuxbridge_agent /usr/local/bin/kolla_set_configs --check changed_when: false failed_when: false register: linuxbridge_agent_check_results when: - neutron_plugin_agent == "linuxbridge" - (inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent']) # NOTE(jeffrey4l): when config_strategy == 'COPY_ALWAYS' # and container env['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE', # just remove the container and start again - name: Containers config strategy for containers running neutron-server and neutron agents kolla_docker: name: "{{ item.name }}" action: "get_container_env" register: neutron_container_envs when: - "{{ item.enabled|default(True) }}" - inventory_hostname in groups[item.group] with_items: - { name: neutron_server, group: neutron-server } - { name: neutron_dhcp_agent, group: neutron-dhcp-agent } - { name: neutron_l3_agent, group: neutron-l3-agent } - { name: neutron_l3_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" } - { name: neutron_lbaas_agent, group: neutron-lbaas-agent, enabled: "{{ enable_neutron_lbaas | bool }}" } - { name: neutron_metadata_agent, group: neutron-metadata-agent } - { name: neutron_metadata_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" } - { name: neutron_vpnaas_agent, group: neutron-vpnaas-agent, enabled: "{{ enable_neutron_vpnaas | bool }}" } - name: Container config strategy for the neutron_openvswitch_agent container kolla_docker: name: "neutron_openvswitch_agent" action: "get_container_env" register: openvswitch_agent_envs when: - neutron_plugin_agent == "openvswitch" - ( ( not enable_nova_fake | bool and inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent'] ) or ( enable_nova_fake | bool and inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent'] ) ) - name: Container config strategy for the neutron_linuxbridge_agent container kolla_docker: name: "neutron_linuxbridge_agent" action: "get_container_env" register: linuxbridge_agent_envs when: - neutron_plugin_agent == "linuxbridge" - (inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent']) - name: Remove the containers running neutron-server and neutron agents kolla_docker: name: "{{ item[0]['name'] }}" action: "remove_container" register: neutron_remove_containers when: - "{{ item[0].enabled | default(True) }}" - inventory_hostname in groups[item[0]['group']] - config_strategy == "COPY_ONCE" or item[1]['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE' - item[2]['rc'] == 1 with_together: - [{ name: neutron_server, group: neutron-server }, { name: neutron_dhcp_agent, group: neutron-dhcp-agent }, { name: neutron_l3_agent, group: neutron-l3-agent }, { name: neutron_l3_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }, { name: neutron_lbaas_agent, group: neutron-lbaas-agent, enabled: "{{ enable_neutron_lbaas | bool }}" }, { name: neutron_metadata_agent, group: neutron-metadata-agent }, { name: neutron_metadata_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }, { name: neutron_vpnaas_agent, group: neutron-vpnaas-agent, enabled: "{{ enable_neutron_vpnaas | bool }}" }] - "{{ neutron_container_envs.results }}" - "{{ neutron_check_results.results }}" - name: Remove the neutron_openvswitch_agent container kolla_docker: name: "neutron_openvswitch_agent" action: "remove_container" register: openvswitch_agent_remove_containers when: - neutron_plugin_agent == "openvswitch" - ( ( not enable_nova_fake | bool and inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent'] ) or ( enable_nova_fake | bool and inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent'] ) ) - config_strategy == "COPY_ONCE" or openvswitch_agent_envs['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE' - openvswitch_agent_check_results['rc'] == 1 - name: Remove the neutron_linuxbridge_agent container kolla_docker: name: "neutron_linuxbridge_agent" action: "remove_container" register: linuxbridge_agent_remove_containers when: - neutron_plugin_agent == "linuxbridge" - (inventory_hostname in groups['compute'] or inventory_hostname in groups['manila-share'] or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent']) - config_strategy == "COPY_ONCE" or linuxbridge_agent_envs['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE' - linuxbridge_agent_check_results['rc'] == 1 - include: start.yml when: neutron_remove_containers.changed or openvswitch_agent_remove_containers.changed or linuxbridge_agent_remove_containers.changed - name: Restart containers running neutron-server and neutron agents kolla_docker: name: "{{ item[0]['name'] }}" action: "restart_container" when: - "{{ item[0].enabled|default(True) }}" - config_strategy == 'COPY_ALWAYS' - inventory_hostname in groups[item[0]['group']] - item[1]['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE' - item[2]['rc'] == 1 with_together: - [{ name: neutron_server, group: neutron-server }, { name: neutron_dhcp_agent, group: neutron-dhcp-agent }, { name: neutron_l3_agent, group: neutron-l3-agent }, { name: neutron_l3_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }, { name: neutron_lbaas_agent, group: neutron-lbaas-agent, enabled: "{{ enable_neutron_lbaas | bool }}" }, { name: neutron_metadata_agent, group: neutron-metadata-agent }, { name: neutron_metadata_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }, { name: neutron_vpnaas_agent, group: neutron-vpnaas-agent, enabled: "{{ enable_neutron_vpnaas | bool }}" }] - "{{ neutron_container_envs.results }}" - "{{ neutron_check_results.results }}" - name: Restart the neutron_openvswitch_agent container kolla_docker: name: "neutron_openvswitch_agent" action: "restart_container" when: - config_strategy == 'COPY_ALWAYS' - neutron_plugin_agent == "openvswitch" - ( ( inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent'] and not enable_nova_fake | bool ) or ( inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent'] and enable_nova_fake | bool ) ) - openvswitch_agent_envs['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE' - openvswitch_agent_check_results['rc'] == 1 - name: Restart the neutron_linuxbridge_agent container kolla_docker: name: "neutron_linuxbridge_agent" action: "restart_container" when: - config_strategy == 'COPY_ALWAYS' - neutron_plugin_agent == "linuxbridge" - (inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-lbaas-agent'] or inventory_hostname in groups['neutron-metadata-agent'] or inventory_hostname in groups['neutron-vpnaas-agent']) - linuxbridge_agent_envs['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE' - linuxbridge_agent_check_results['rc'] == 1