
Due to changes with the drop-root work, we lost the ability to write to /var/lib/nova/*. This fixes those permissions and ensures cross container talk works properly between nova_libvirt and nova_compute Additionally, this fixes another issue introduced which saw that nova-compute could not run sudo commands as it did not have a proper sudoers entry Testing from previous deploys means you need a fresh environment. You have to remove all of the named volumes that kolla created in docker. Check these with `docker volume ls` Signed-off-by: Hui Kang <kangh@us.ibm.com> Signed-off-by: Artur Zarzycki <azarzycki@mirantis.com> Co-Authored-By: Sam Yaple <sam@yaple.net> Co-Authored-By: Hui Kang <kangh@us.ibm.com> Closes-Bug: #1533350 Change-Id: I7f864c448a2414e0b5d89f48337be411b891df35
82 lines
2.9 KiB
YAML
82 lines
2.9 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: Starting 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 }}"
|
|
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: Starting 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 }}"
|
|
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
|