7f17203406
Initially it did not use this client due to the fact that the client didn't seem to want to work in the containers. Now it works fine and it should be used instead of the deprecated keystone client Change-Id: Ib0e172c677e200e5df01c478b7ea257b30c0df0b Closes-Bug: #1490126
72 lines
3.3 KiB
YAML
72 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
|
|
docker_api_version: "{{ docker_api_version }}"
|
|
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/:/opt/kolla/keystone/: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
|
|
run_once: True
|
|
when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
|
|
|
|
- name: Cleaning up Keystone boostrap 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
|