The original reason for having the data container in the bootstrap.yml was to keep consistency with rabbitmq and mariadb, but in light of this bug we need to move the data container out of the bootstrap.yml role since we will be limiting the hosts that those tasks can run on. Change-Id: I7f2f5979b01807275908699d1243756cb97d3588 Partial-Bug: #1513598
70 lines
2.8 KiB
YAML
70 lines
2.8 KiB
YAML
---
|
|
- name: Creating Nova database
|
|
command: docker exec -t kolla_ansible /usr/bin/ansible localhost
|
|
-m mysql_db
|
|
-a "login_host='{{ database_address }}'
|
|
login_user='{{ database_user }}'
|
|
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 }}"
|
|
failed_when: database.stdout.split()[2] != 'SUCCESS'
|
|
run_once: True
|
|
|
|
- name: Creating Nova database user and setting permissions
|
|
command: docker exec -t kolla_ansible /usr/bin/ansible localhost
|
|
-m mysql_user
|
|
-a "login_host='{{ database_address }}'
|
|
login_user='{{ database_user }}'
|
|
login_password='{{ database_password }}'
|
|
name='{{ nova_database_name }}'
|
|
password='{{ nova_database_password }}'
|
|
host='%'
|
|
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 }}"
|
|
failed_when: database_user_create.stdout.split()[2] != 'SUCCESS'
|
|
run_once: True
|
|
|
|
- name: Starting Nova bootstrap container
|
|
docker:
|
|
tty: True
|
|
detach: False
|
|
net: host
|
|
pull: "{{ docker_pull_policy }}"
|
|
restart_policy: "no"
|
|
state: reloaded
|
|
registry: "{{ docker_registry }}"
|
|
username: "{{ docker_registry_username }}"
|
|
password: "{{ docker_registry_password }}"
|
|
insecure_registry: "{{ docker_insecure_registry }}"
|
|
name: bootstrap_nova
|
|
image: "{{ nova_api_image_full }}"
|
|
volumes: "{{ node_config_directory }}/nova-api/:{{ container_config_directory }}/:ro"
|
|
env:
|
|
KOLLA_BOOTSTRAP:
|
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
|
run_once: True
|
|
when:
|
|
- database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
|
|
- inventory_hostname in groups['nova-api']
|
|
|
|
# https://github.com/ansible/ansible-modules-core/pull/1031
|
|
- name: Waiting for bootstrap container to exit
|
|
command: docker wait bootstrap_nova
|
|
register: bootstrap_result
|
|
run_once: True
|
|
failed_when: bootstrap_result.stdout != "0"
|
|
when:
|
|
- database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
|
|
- inventory_hostname in groups['nova-api']
|
|
|
|
- name: Cleaning up Nova bootstrap container
|
|
docker:
|
|
tty: True
|
|
name: bootstrap_nova
|
|
image: "{{ nova_api_image_full }}"
|
|
state: absent
|
|
when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
|