--- - name: Creating Ironic database command: docker exec -t kolla_ansible /usr/bin/ansible localhost -m mysql_db -a "login_host='{{ database_address }}' login_port='{{ mariadb_port }}' login_user='{{ database_user }}' login_password='{{ database_password }}' name='{{ ironic_database_name }}'" register: database changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}" failed_when: database.stdout.split()[2] != 'SUCCESS' run_once: True delegate_to: "{{ groups['ironic-api'][0] }}" - name: Reading json from variable set_fact: database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}" - name: Creating Ironic database user and setting permissions command: docker exec -t kolla_ansible /usr/bin/ansible localhost -m mysql_user -a "login_host='{{ database_address }}' login_port='{{ mariadb_port }}' login_user='{{ database_user }}' login_password='{{ database_password }}' name='{{ ironic_database_name }}' password='{{ ironic_database_password }}' host='%' priv='{{ ironic_database_name }}.*:ALL' append_privs='yes'" register: database_user_create changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database_user_create.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}" failed_when: database_user_create.stdout.split()[2] != 'SUCCESS' run_once: True delegate_to: "{{ groups['ironic-api'][0] }}" - name: Running Ironic bootstrap container kolla_docker: action: "start_container" common_options: "{{ docker_common_options }}" detach: False environment: KOLLA_BOOTSTRAP: KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" image: "{{ ironic_api_image_full }}" name: "bootstrap_ironic" restart_policy: "never" volumes: "{{ node_config_directory }}/ironic-api/:{{ container_config_directory }}/:ro" run_once: True delegate_to: "{{ groups['ironic-api'][0] }}" when: database_created