aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ansible/roles/nova/defaults/main.yml3
-rw-r--r--ansible/roles/nova/tasks/bootstrap.yml36
-rw-r--r--ansible/roles/nova/templates/nova.conf.j23
-rw-r--r--docker/nova/nova-api/extend_start.sh1
-rw-r--r--etc/kolla/passwords.yml1
5 files changed, 44 insertions, 0 deletions
diff --git a/ansible/roles/nova/defaults/main.yml b/ansible/roles/nova/defaults/main.yml
index 9d1f0194b..e98f061d5 100644
--- a/ansible/roles/nova/defaults/main.yml
+++ b/ansible/roles/nova/defaults/main.yml
@@ -21,6 +21,9 @@ nova_database_name: "nova"
nova_database_user: "nova"
nova_database_address: "{{ kolla_internal_address }}"
+nova_api_database_name: "nova_api"
+nova_api_database_user: "nova_api"
+nova_api_database_address: "{{ kolla_internal_address }}"
####################
# Docker
diff --git a/ansible/roles/nova/tasks/bootstrap.yml b/ansible/roles/nova/tasks/bootstrap.yml
index 9f874efd5..c9ed43175 100644
--- a/ansible/roles/nova/tasks/bootstrap.yml
+++ b/ansible/roles/nova/tasks/bootstrap.yml
@@ -17,6 +17,24 @@
set_fact:
database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+- name: Creating Nova-api 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_api_database_name }}'"
+ register: database_api
+ changed_when: "{{ database_api.stdout.find('localhost | SUCCESS => ') != -1 and
+ (database_api.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+ failed_when: database_api.stdout.split()[2] != 'SUCCESS'
+ run_once: True
+ delegate_to: "{{ groups['nova-api'][0] }}"
+
+- name: Reading json from variable
+ set_fact:
+ database_api_created: "{{ (database_api.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
@@ -35,6 +53,24 @@
run_once: True
delegate_to: "{{ groups['nova-api'][0] }}"
+- name: Creating Nova-api 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_api_database_name }}'
+ password='{{ nova_api_database_password }}'
+ host='%'
+ priv='{{ nova_api_database_name }}.*:ALL'
+ append_privs='yes'"
+ register: database_api_user_create
+ changed_when: "{{ database_api_user_create.stdout.find('localhost | SUCCESS => ') != -1 and
+ (database_api_user_create.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+ failed_when: database_api_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"
diff --git a/ansible/roles/nova/templates/nova.conf.j2 b/ansible/roles/nova/templates/nova.conf.j2
index 3f6efe183..f5021fdd7 100644
--- a/ansible/roles/nova/templates/nova.conf.j2
+++ b/ansible/roles/nova/templates/nova.conf.j2
@@ -125,6 +125,9 @@ password = {{ neutron_keystone_password }}
[database]
connection = mysql+pymysql://{{ nova_database_user }}:{{ nova_database_password }}@{{ nova_database_address }}/{{ nova_database_name }}
+[api_database]
+connection = mysql+pymysql://{{ nova_api_database_user }}:{{ nova_api_database_password }}@{{ nova_api_database_address }}/{{ nova_api_database_name }}
+
[keystone_authtoken]
auth_uri = http://{{ kolla_internal_address }}:{{ keystone_public_port }}
auth_url = http://{{ kolla_internal_address }}:{{ keystone_admin_port }}
diff --git a/docker/nova/nova-api/extend_start.sh b/docker/nova/nova-api/extend_start.sh
index 93b63d53f..c7bc9c862 100644
--- a/docker/nova/nova-api/extend_start.sh
+++ b/docker/nova/nova-api/extend_start.sh
@@ -4,5 +4,6 @@
# of the KOLLA_BOOTSTRAP variable being set, including empty.
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
nova-manage db sync
+ nova-manage api_db sync
exit 0
fi
diff --git a/etc/kolla/passwords.yml b/etc/kolla/passwords.yml
index 369053b0b..050ec2086 100644
--- a/etc/kolla/passwords.yml
+++ b/etc/kolla/passwords.yml
@@ -33,6 +33,7 @@ glance_database_password: "password"
glance_keystone_password: "password"
nova_database_password: "password"
+nova_api_database_password: "password"
nova_keystone_password: "password"
neutron_database_password: "password"