
Ansible 1.9.2 contains the fix needed for docker-py >1.2.0 This is needed for some gate reasons, but it is also a good version bump because it fixes a few issues with delegate_to. Change-Id: Iafbabb3b0232620849d0548c5cd9d8d316c2b0f3 backport: liberty Partially-Implements: blueprint functional-testing-gate
73 lines
3.3 KiB
YAML
73 lines
3.3 KiB
YAML
---
|
|
- name: Creating Keystone 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='{{ keystone_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 Keystone 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='{{ keystone_database_name }}'
|
|
password='{{ keystone_database_password }}'
|
|
host='%'
|
|
priv='{{ keystone_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
|
|
|
|
- name: Starting Keystone bootstrap container
|
|
docker:
|
|
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_keystone
|
|
image: "{{ keystone_image_full }}"
|
|
volumes: "{{ node_config_directory }}/keystone/:{{ container_config_directory }}/:ro"
|
|
env:
|
|
KOLLA_BOOTSTRAP:
|
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
|
KEYSTONE_ADMIN_PASSWORD: "{{ keystone_admin_password }}"
|
|
REGION_NAME: "{{ openstack_region_name }}"
|
|
PUBLIC_URL: "http://{{ kolla_external_address }}:{{ keystone_public_port }}/v2.0"
|
|
INTERNAL_URL: "http://{{ kolla_internal_address }}:{{ keystone_public_port }}/v2.0"
|
|
ADMIN_URL: "http://{{ kolla_internal_address }}:{{ keystone_admin_port }}/v2.0"
|
|
OS_TOKEN: "{{ keystone_admin_token }}"
|
|
OS_URL: "http://{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}:{{ keystone_admin_port }}/v2.0"
|
|
run_once: True
|
|
when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
|
|
|
|
# https://github.com/ansible/ansible-modules-core/pull/1031
|
|
- name: Waiting for Keystone bootstrap container to exit
|
|
command: docker wait bootstrap_keystone
|
|
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
|
|
|
|
- name: Cleaning up Keystone bootstrap container
|
|
docker:
|
|
name: bootstrap_keystone
|
|
image: "{{ keystone_image_full }}"
|
|
state: absent
|
|
when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
|