kolla-ansible/ansible/roles/nova/tasks/bootstrap.yml
SamYaple 6d8959a962 Update all bootstraps to use Label
Add bootstrap label to all bootstrap containers to ensure that when
the a new container is launched a difference is seen between it and
the bootstrap container since we cannot rely on ENV variables for
this. This only affects mariadb at this stage, but it is needed to
ensure rabbitmq works when we switch to named volumes.

Change-Id: Ia022af26212d2e5445c06149848831037a508407
Closes-Bug: #1538136
2016-01-28 20:26:41 +00:00

86 lines
3.0 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
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
-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
delegate_to: "{{ groups['nova-api'][0] }}"
- name: Running Nova bootstrap container
kolla_docker:
action: "start_container"
common_options: "{{ docker_common_options }}"
detach: False
environment:
KOLLA_BOOTSTRAP:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
image: "{{ nova_api_image_full }}"
labels:
BOOTSTRAP:
name: "bootstrap_nova"
restart_policy: "never"
volumes: "{{ node_config_directory }}/nova-api/:{{ container_config_directory }}/:ro"
run_once: True
delegate_to: "{{ groups['nova-api'][0] }}"
when: database_created
- name: Creating nova-compute volume
kolla_docker:
action: "create_volume"
common_options: "{{ docker_common_options }}"
name: "nova_compute"
register: nova_compute_volume
when:
- inventory_hostname in groups['compute']
- not enable_nova_fake | bool
- name: Running Nova compute bootstrap container
kolla_docker:
action: "start_container"
common_options: "{{ docker_common_options }}"
detach: False
environment:
KOLLA_BOOTSTRAP:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
image: "{{ nova_compute_image_full }}"
labels:
BOOTSTRAP:
name: "bootstrap_nova_compute"
restart_policy: "never"
volumes:
- "{{ node_config_directory }}/nova-compute/:{{ container_config_directory }}/:ro"
- "nova_compute:/var/lib/nova/"
when:
- inventory_hostname in groups['compute']
- not enable_nova_fake | bool
- nova_compute_volume.changed