--- - name: Creating the Heat service and endpoint command: docker exec -t kolla_toolbox /usr/bin/ansible localhost -m kolla_keystone_service -a "service_name={{ item.service_name }} service_type={{ item.service_type }} description='Openstack Orchestration' endpoint_region={{ openstack_region_name }} url='{{ item.url }}' interface='{{ item.interface }}' region_name={{ openstack_region_name }} auth={{ '{{ openstack_heat_auth }}' }}" -e "{'openstack_heat_auth':{{ openstack_heat_auth }}}" register: heat_endpoint changed_when: "{{ heat_endpoint.stdout.find('localhost | SUCCESS => ') != -1 and (heat_endpoint.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}" until: heat_endpoint.stdout.split()[2] == 'SUCCESS' retries: 10 delay: 5 run_once: True with_items: - {'interface': 'admin', 'url': '{{ heat_admin_endpoint }}', 'service_name': 'heat', 'service_type': 'orchestration'} - {'interface': 'internal', 'url': '{{ heat_internal_endpoint }}', 'service_name': 'heat', 'service_type': 'orchestration'} - {'interface': 'public', 'url': '{{ heat_public_endpoint }}', 'service_name': 'heat', 'service_type': 'orchestration'} - {'interface': 'admin', 'url': '{{ heat_cfn_admin_endpoint }}', 'service_name': 'heat-cfn', 'service_type': 'cloudformation'} - {'interface': 'internal', 'url': '{{ heat_cfn_internal_endpoint }}', 'service_name': 'heat-cfn', 'service_type': 'cloudformation'} - {'interface': 'public', 'url': '{{ heat_cfn_public_endpoint }}', 'service_name': 'heat-cfn', 'service_type': 'cloudformation'} - name: Creating the Heat project, user, and role command: docker exec -t kolla_toolbox /usr/bin/ansible localhost -m kolla_keystone_user -a "project=service user=heat password={{ heat_keystone_password }} role=admin region_name={{ openstack_region_name }} auth={{ '{{ openstack_heat_auth }}' }}" -e "{'openstack_heat_auth':{{ openstack_heat_auth }}}" register: heat_user changed_when: "{{ heat_user.stdout.find('localhost | SUCCESS => ') != -1 and (heat_user.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}" until: heat_user.stdout.split()[2] == 'SUCCESS' retries: 10 delay: 5 run_once: True - name: Creating the heat_stack_user role command: docker exec -t kolla_toolbox /usr/bin/ansible localhost -m os_keystone_role -a "name={{ heat_stack_user_role }} auth={{ '{{ openstack_heat_auth }}' }}" -e "{'openstack_horizon_auth':{{ openstack_heat_auth }}}" register: heat_stack_user_role_result changed_when: "{{ heat_stack_user_result.stdout.find('localhost | SUCCESS => ') != -1 and (heat_stack_user_result.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}" until: heat_stack_user_result.split()[2] == 'SUCCESS' retries: 10 delay: 5 run_once: True - name: Creating the heat_stack_owner role command: docker exec -t kolla_toolbox /usr/bin/ansible localhost -m os_keystone_role -a "name={{ heat_stack_owner_role }} auth={{ '{{ openstack_heat_auth }}' }}" -e "{'openstack_horizon_auth':{{ openstack_heat_auth }}}" register: heat_stack_owner_role_result changed_when: "{{ heat_stack_owner_result.stdout.find('localhost | SUCCESS => ') != -1 and (heat_stack_owner_result.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}" until: heat_stack_owner_result.split()[2] == 'SUCCESS' retries: 10 delay: 5 run_once: True