diff --git a/ansible/roles/cinder/tasks/bootstrap.yml b/ansible/roles/cinder/tasks/bootstrap.yml
index b3ef61139e4cac5cdb1c643e0d0a0451a7987e5f..614420c202281d6d48e5f3f2586fded64cf73edb 100644
--- a/ansible/roles/cinder/tasks/bootstrap.yml
+++ b/ansible/roles/cinder/tasks/bootstrap.yml
@@ -7,11 +7,16 @@
         login_password='{{ database_password }}'
         name='{{ cinder_database_name }}'"
   register: database
-  changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  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['cinder-api'][0] }}"
 
+- name: Reading json from variable
+  set_fact:
+    database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+
 - name: Creating Cinder database user and setting permissions
   command: docker exec -t kolla_ansible /usr/bin/ansible localhost
     -m mysql_user
@@ -24,7 +29,8 @@
         priv='{{ cinder_database_name }}.*:ALL'
         append_privs='yes'"
   register: database_user_create
-  changed_when: "{{ database_user_create.stdout.find('localhost | SUCCESS => ') != -1 and (database_user_create.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  changed_when: "{{ database_user_create.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['cinder-api'][0] }}"
@@ -49,7 +55,7 @@
       KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
   run_once: True
   delegate_to: "{{ groups['cinder-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 # https://github.com/ansible/ansible-modules-core/pull/1031
 - name: Waiting for bootstrap container to exit
@@ -58,13 +64,12 @@
   register: bootstrap_result
   run_once: True
   delegate_to: "{{ groups['cinder-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 - name: Cleaning up Cinder bootstrap container
   docker:
-    tty: True
     name: bootstrap_cinder
     image: "{{ cinder_api_image_full }}"
     state: absent
   delegate_to: "{{ groups['cinder-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
diff --git a/ansible/roles/glance/tasks/bootstrap.yml b/ansible/roles/glance/tasks/bootstrap.yml
index f080d13efc11fb9bf49a82066f7f51eb000daac0..6d29fec4bf1b665cdc6264a5805c9b1592ed0cb5 100644
--- a/ansible/roles/glance/tasks/bootstrap.yml
+++ b/ansible/roles/glance/tasks/bootstrap.yml
@@ -8,11 +8,16 @@
         login_password='{{ database_password }}'
         name='{{ glance_database_name }}'"
   register: database
-  changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  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['glance-api'][0] }}"
 
+- name: Reading json from variable
+  set_fact:
+    database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+
 - name: Creating Glance database user and setting permissions
   command: docker exec -t kolla_ansible /usr/bin/ansible localhost
     -m mysql_user
@@ -25,7 +30,8 @@
         priv='{{ glance_database_name }}.*:ALL'
         append_privs='yes'"
   register: database_user_create
-  changed_when: "{{ database_user_create.stdout.find('localhost | SUCCESS => ') != -1 and (database_user_create.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  changed_when: "{{ database_user_create.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['glance-api'][0] }}"
@@ -50,7 +56,7 @@
       KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
   run_once: True
   delegate_to: "{{ groups['glance-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 # https://github.com/ansible/ansible-modules-core/pull/1031
 - name: Waiting for bootstrap container to exit
@@ -59,13 +65,12 @@
   run_once: True
   delegate_to: "{{ groups['glance-api'][0] }}"
   failed_when: bootstrap_result.stdout != "0"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 - name: Cleaning up Glance bootstrap container
   docker:
-    tty: True
     name: bootstrap_glance
     image: "{{ glance_api_image_full }}"
     state: absent
   delegate_to: "{{ groups['glance-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
diff --git a/ansible/roles/heat/tasks/bootstrap.yml b/ansible/roles/heat/tasks/bootstrap.yml
index b14ce94db15455c82ec433a8318cdde374e5e107..e0ed79efcf69f4b52e48d519d780bceac038d7f9 100644
--- a/ansible/roles/heat/tasks/bootstrap.yml
+++ b/ansible/roles/heat/tasks/bootstrap.yml
@@ -7,11 +7,16 @@
         login_password='{{ database_password }}'
         name='{{ heat_database_name }}'"
   register: database
-  changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  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['heat-api'][0] }}"
 
+- name: Reading json from variable
+  set_fact:
+    database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+
 - name: Creating Heat database user and setting permissions
   command: docker exec -t kolla_ansible /usr/bin/ansible localhost
     -m mysql_user
@@ -24,7 +29,8 @@
         priv='{{ heat_database_name }}.*:ALL'
         append_privs='yes'"
   register: database_user_create
-  changed_when: "{{ database_user_create.stdout.find('localhost | SUCCESS => ') != -1 and (database_user_create.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  changed_when: "{{ database_user_create.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['heat-api'][0] }}"
@@ -55,7 +61,7 @@
       HEAT_DOMAIN_ADMIN_PASSWORD: "{{ heat_domain_admin_password }}"
   run_once: True
   delegate_to: "{{ groups['heat-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 # https://github.com/ansible/ansible-modules-core/pull/1031
 - name: Waiting for bootstrap container to exit
@@ -64,13 +70,12 @@
   run_once: True
   failed_when: bootstrap_result.stdout != "0"
   delegate_to: "{{ groups['heat-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 - name: Cleaning up Heat boostrap container
   docker:
-    tty: True
     name: bootstrap_heat
     image: "{{ heat_api_image_full }}"
     state: absent
   delegate_to: "{{ groups['heat-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
diff --git a/ansible/roles/ironic/tasks/bootstrap.yml b/ansible/roles/ironic/tasks/bootstrap.yml
index afac4facbfc109793b92e8c5b2ae88b3ef76ebf1..94f7b572f41d95d962d8466fd2bf64ea43ce6dbe 100644
--- a/ansible/roles/ironic/tasks/bootstrap.yml
+++ b/ansible/roles/ironic/tasks/bootstrap.yml
@@ -8,11 +8,16 @@
         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 }}"
+  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
@@ -26,7 +31,8 @@
         priv='{{ ironic_database_name }}.*:ALL'
         append_privs='yes'"
   register: database_user_create
-  changed_when: "{{ database_user_create.stdout.find('localhost | SUCCESS => ') != -1 and (database_user_create.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  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] }}"
@@ -51,20 +57,19 @@
       KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
   run_once: True
   delegate_to: "{{ groups['ironic-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 # https://github.com/ansible/ansible-modules-core/pull/1031
 - name: Waiting for Ironic bootstrap container to exit
   command: docker wait bootstrap_ironic
   run_once: True
   delegate_to: "{{ groups['ironic-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 - name: Cleaning up boostrap container
   docker:
-    tty: True
     name: bootstrap_ironic
     image: "{{ ironic_api_image_full }}"
     state: absent
   delegate_to: "{{ groups['ironic-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
diff --git a/ansible/roles/keystone/tasks/bootstrap.yml b/ansible/roles/keystone/tasks/bootstrap.yml
index c42f4120ca5b57fed5a26c77b48cbc780284aa1d..37210875d02e69c82f01076014dd9024ade0f703 100644
--- a/ansible/roles/keystone/tasks/bootstrap.yml
+++ b/ansible/roles/keystone/tasks/bootstrap.yml
@@ -8,11 +8,16 @@
         login_password='{{ database_password }}'
         name='{{ keystone_database_name }}'"
   register: database
-  changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  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['keystone'][0] }}"
 
+- name: Reading json from variable
+  set_fact:
+    database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+
 - name: Creating Keystone database user and setting permissions
   command: docker exec -t kolla_ansible /usr/bin/ansible localhost
     -m mysql_user
@@ -26,7 +31,8 @@
         priv='{{ keystone_database_name }}.*:ALL'
         append_privs='yes'"
   register: database_user_create
-  changed_when: "{{ database_user_create.stdout.find('localhost | SUCCESS => ') != -1 and (database_user_create.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  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['keystone'][0] }}"
@@ -58,7 +64,7 @@
       OS_URL: "http://{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}:{{ keystone_admin_port }}/v2.0"
   run_once: True
   delegate_to: "{{ groups['keystone'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 # https://github.com/ansible/ansible-modules-core/pull/1031
 - name: Waiting for Keystone bootstrap container to exit
@@ -67,13 +73,12 @@
   run_once: True
   failed_when: bootstrap_result.stdout != "0"
   delegate_to: "{{ groups['keystone'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 - name: Cleaning up Keystone bootstrap container
   docker:
-    tty: True
     name: bootstrap_keystone
     image: "{{ keystone_image_full }}"
     state: absent
   delegate_to: "{{ groups['keystone'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
diff --git a/ansible/roles/magnum/tasks/bootstrap.yml b/ansible/roles/magnum/tasks/bootstrap.yml
index facda5d1fd58c74f179cb348c9a0673d87b74b4b..48b9267d0846562d326a77b1b1543770e5619aff 100644
--- a/ansible/roles/magnum/tasks/bootstrap.yml
+++ b/ansible/roles/magnum/tasks/bootstrap.yml
@@ -7,11 +7,16 @@
         login_password='{{ database_password }}'
         name='{{ magnum_database_name }}'"
   register: database
-  changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  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['magnum-api'][0] }}"
 
+- name: Reading json from variable
+  set_fact:
+    database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+
 - name: Creating Magnum database user and setting permissions
   command: docker exec -t kolla_ansible /usr/bin/ansible localhost
     -m mysql_user
@@ -24,7 +29,8 @@
         priv='{{ magnum_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 }}"
+  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['magnum-api'][0] }}"
@@ -49,7 +55,7 @@
       KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
   run_once: True
   delegate_to: "{{ groups['magnum-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 # https://github.com/ansible/ansible-modules-core/pull/1031
 - name: Waiting for bootstrap container to exit
@@ -58,7 +64,7 @@
   run_once: True
   failed_when: bootstrap_result.stdout != "0"
   delegate_to: "{{ groups['magnum-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 - name: Cleaning up Magnum boostrap container
   docker:
@@ -67,4 +73,4 @@
     image: "{{ magnum_api_image_full }}"
     state: absent
   delegate_to: "{{ groups['magnum-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
diff --git a/ansible/roles/murano/tasks/bootstrap.yml b/ansible/roles/murano/tasks/bootstrap.yml
index 25d6e52ea267a5481b64f59388b358ea208b6817..ce84179acfe98e8d618cf5defc37dfb7d2763147 100644
--- a/ansible/roles/murano/tasks/bootstrap.yml
+++ b/ansible/roles/murano/tasks/bootstrap.yml
@@ -8,11 +8,16 @@
         login_password='{{ database_password }}'
         name='{{ murano_database_name }}'"
   register: database
-  changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  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['murano-api'][0] }}"
 
+- name: Reading json from variable
+  set_fact:
+    database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+
 - name: Creating Murano database user and setting permissions
   command: docker exec -t kolla_ansible /usr/bin/ansible localhost
     -m mysql_user
@@ -25,7 +30,8 @@
         priv='{{ murano_database_name }}.*:ALL'
         append_privs='yes'"
   register: database_user_create
-  changed_when: "{{ database_user_create.stdout.find('localhost | SUCCESS => ') != -1 and (database_user_create.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  changed_when: "{{ database_user_create.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['murano-api'][0] }}"
@@ -50,20 +56,19 @@
       KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
   run_once: True
   delegate_to: "{{ groups['murano-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 # https://github.com/ansible/ansible-modules-core/pull/1031
 - name: Waiting for bootstrap container to exit
   command: docker wait bootstrap_murano
   run_once: True
   delegate_to: "{{ groups['murano-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 - name: Cleaning up Murano boostrap container
   docker:
-    tty: True
     name: bootstrap_murano
     image: "{{ murano_api_image_full }}"
     state: absent
   delegate_to: "{{ groups['murano-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
diff --git a/ansible/roles/neutron/tasks/bootstrap.yml b/ansible/roles/neutron/tasks/bootstrap.yml
index b11abe5f97d50e2a12132133144376b75f3dee4b..b3707b0a5d3f27c5c1ce497400692898c7f5e712 100644
--- a/ansible/roles/neutron/tasks/bootstrap.yml
+++ b/ansible/roles/neutron/tasks/bootstrap.yml
@@ -7,11 +7,16 @@
         login_password='{{ database_password }}'
         name='{{ neutron_database_name }}'"
   register: database
-  changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  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['neutron-server'][0] }}"
 
+- name: Reading json from variable
+  set_fact:
+    database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+
 - name: Creating Neutron database user and setting permissions
   command: docker exec -t kolla_ansible /usr/bin/ansible localhost
     -m mysql_user
@@ -24,7 +29,8 @@
         priv='{{ neutron_database_name }}.*:ALL'
         append_privs='yes'"
   register: database_user_create
-  changed_when: "{{ database_user_create.stdout.find('localhost | SUCCESS => ') != -1 and (database_user_create.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  changed_when: "{{ database_user_create.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['neutron-server'][0] }}"
@@ -49,7 +55,7 @@
       KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
   run_once: True
   delegate_to: "{{ groups['neutron-server'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 # https://github.com/ansible/ansible-modules-core/pull/1031
 - name: Waiting for bootstrap container to exit
@@ -58,13 +64,12 @@
   run_once: True
   failed_when: bootstrap_result.stdout != "0"
   delegate_to: "{{ groups['neutron-server'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 - name: Cleaning up Neutron bootstrap container
   docker:
-    tty: True
     name: bootstrap_neutron
     image: "{{ neutron_server_image_full }}"
     state: absent
   delegate_to: "{{ groups['neutron-server'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
diff --git a/ansible/roles/nova/tasks/bootstrap.yml b/ansible/roles/nova/tasks/bootstrap.yml
index 30a17dfefb1f222e4d122a4367a1775c732ffb6e..809b5e64ce2adf8438c44585c893613ac1067f87 100644
--- a/ansible/roles/nova/tasks/bootstrap.yml
+++ b/ansible/roles/nova/tasks/bootstrap.yml
@@ -7,11 +7,16 @@
         login_password='{{ database_password }}'
         name='{{ nova_database_name }}'"
   register: database
-  changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  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['nova-api'][0] }}"
 
+- name: Reading json from variable
+  set_fact:
+    database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+
 - name: Creating Nova database user and setting permissions
   command: docker exec -t kolla_ansible /usr/bin/ansible localhost
     -m mysql_user
@@ -24,7 +29,8 @@
         priv='{{ nova_database_name }}.*:ALL'
         append_privs='yes'"
   register: database_user_create
-  changed_when: "{{ database_user_create.stdout.find('localhost | SUCCESS => ') != -1 and (database_user_create.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  changed_when: "{{ database_user_create.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['nova-api'][0] }}"
@@ -49,7 +55,7 @@
       KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
   run_once: True
   delegate_to: "{{ groups['nova-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 # https://github.com/ansible/ansible-modules-core/pull/1031
 - name: Waiting for bootstrap container to exit
@@ -58,13 +64,12 @@
   run_once: True
   failed_when: bootstrap_result.stdout != "0"
   delegate_to: "{{ groups['nova-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
 
 - name: Cleaning up Nova bootstrap container
   docker:
-    tty: True
     name: bootstrap_nova
     image: "{{ nova_api_image_full }}"
     state: absent
   delegate_to: "{{ groups['nova-api'][0] }}"
-  when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
+  when: database_created
diff --git a/ansible/roles/rabbitmq/tasks/bootstrap.yml b/ansible/roles/rabbitmq/tasks/bootstrap.yml
index 930f0f7f087ef029b78770498ca04d356dbd9bbe..412fee64678a87fab860eee71e78c05ce8bad16b 100644
--- a/ansible/roles/rabbitmq/tasks/bootstrap.yml
+++ b/ansible/roles/rabbitmq/tasks/bootstrap.yml
@@ -55,7 +55,6 @@
 
 - name: Cleaning up bootstrap container
   docker:
-    tty: True
     image: "{{ rabbitmq_image_full }}"
     name: "rabbitmq_bootstrap"
     state: "absent"