summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamYaple <sam@yaple.net>2016-02-01 23:01:59 +0000
committerSamYaple <sam@yaple.net>2016-02-02 21:56:54 +0000
commite7dfd63bfc5cfba0117c410d418feaff0f7999f3 (patch)
treeadffe3d2d0f54d0ee1d3d9d92f1355711779f79c
parent0e5ca754ace90ac79d5197f0803a3d45f03a0e61 (diff)
Create nova-api database
This is a required patch. Kilo introduced a nova-api database but didn't use it. [1] Mitaka now uses it and has broken booting instances. [2] [1] https://wiki.openstack.org/wiki/ReleaseNotes/Kilo#OpenStack_Compute_.28Nova.29 [2] https://github.com/openstack/nova/blob/df0fca62cf5324f5b6eae0fed1f88c6c9ed61c71/releasenotes/notes/request-spec-api-db-b9cc6e0624d563c5.yaml Change-Id: If0a7f4ba4937fab8d60f5236ca00db06faa768c7 Closes-Bug: #1540579
Notes
Notes (review): Code-Review+2: Michal Rostecki <mrostecki@mirantis.com> Code-Review+2: Jeffrey Zhang <jeffrey.zhang@99cloud.net> Workflow+1: Jeffrey Zhang <jeffrey.zhang@99cloud.net> Verified+2: Jenkins Submitted-by: Jenkins Submitted-at: Wed, 03 Feb 2016 15:30:49 +0000 Reviewed-on: https://review.openstack.org/274928 Project: openstack/kolla Branch: refs/heads/master
-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 9d1f019..e98f061 100644
--- a/ansible/roles/nova/defaults/main.yml
+++ b/ansible/roles/nova/defaults/main.yml
@@ -21,6 +21,9 @@ nova_database_name: "nova"
21nova_database_user: "nova" 21nova_database_user: "nova"
22nova_database_address: "{{ kolla_internal_address }}" 22nova_database_address: "{{ kolla_internal_address }}"
23 23
24nova_api_database_name: "nova_api"
25nova_api_database_user: "nova_api"
26nova_api_database_address: "{{ kolla_internal_address }}"
24 27
25#################### 28####################
26# Docker 29# Docker
diff --git a/ansible/roles/nova/tasks/bootstrap.yml b/ansible/roles/nova/tasks/bootstrap.yml
index 9f874ef..c9ed431 100644
--- a/ansible/roles/nova/tasks/bootstrap.yml
+++ b/ansible/roles/nova/tasks/bootstrap.yml
@@ -17,6 +17,24 @@
17 set_fact: 17 set_fact:
18 database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}" 18 database_created: "{{ (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
19 19
20- name: Creating Nova-api database
21 command: docker exec -t kolla_ansible /usr/bin/ansible localhost
22 -m mysql_db
23 -a "login_host='{{ database_address }}'
24 login_user='{{ database_user }}'
25 login_password='{{ database_password }}'
26 name='{{ nova_api_database_name }}'"
27 register: database_api
28 changed_when: "{{ database_api.stdout.find('localhost | SUCCESS => ') != -1 and
29 (database_api.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
30 failed_when: database_api.stdout.split()[2] != 'SUCCESS'
31 run_once: True
32 delegate_to: "{{ groups['nova-api'][0] }}"
33
34- name: Reading json from variable
35 set_fact:
36 database_api_created: "{{ (database_api.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
37
20- name: Creating Nova database user and setting permissions 38- name: Creating Nova database user and setting permissions
21 command: docker exec -t kolla_ansible /usr/bin/ansible localhost 39 command: docker exec -t kolla_ansible /usr/bin/ansible localhost
22 -m mysql_user 40 -m mysql_user
@@ -35,6 +53,24 @@
35 run_once: True 53 run_once: True
36 delegate_to: "{{ groups['nova-api'][0] }}" 54 delegate_to: "{{ groups['nova-api'][0] }}"
37 55
56- name: Creating Nova-api database user and setting permissions
57 command: docker exec -t kolla_ansible /usr/bin/ansible localhost
58 -m mysql_user
59 -a "login_host='{{ database_address }}'
60 login_user='{{ database_user }}'
61 login_password='{{ database_password }}'
62 name='{{ nova_api_database_name }}'
63 password='{{ nova_api_database_password }}'
64 host='%'
65 priv='{{ nova_api_database_name }}.*:ALL'
66 append_privs='yes'"
67 register: database_api_user_create
68 changed_when: "{{ database_api_user_create.stdout.find('localhost | SUCCESS => ') != -1 and
69 (database_api_user_create.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
70 failed_when: database_api_user_create.stdout.split()[2] != 'SUCCESS'
71 run_once: True
72 delegate_to: "{{ groups['nova-api'][0] }}"
73
38- name: Running Nova bootstrap container 74- name: Running Nova bootstrap container
39 kolla_docker: 75 kolla_docker:
40 action: "start_container" 76 action: "start_container"
diff --git a/ansible/roles/nova/templates/nova.conf.j2 b/ansible/roles/nova/templates/nova.conf.j2
index 3f6efe1..f5021fd 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 }}
125[database] 125[database]
126connection = mysql+pymysql://{{ nova_database_user }}:{{ nova_database_password }}@{{ nova_database_address }}/{{ nova_database_name }} 126connection = mysql+pymysql://{{ nova_database_user }}:{{ nova_database_password }}@{{ nova_database_address }}/{{ nova_database_name }}
127 127
128[api_database]
129connection = mysql+pymysql://{{ nova_api_database_user }}:{{ nova_api_database_password }}@{{ nova_api_database_address }}/{{ nova_api_database_name }}
130
128[keystone_authtoken] 131[keystone_authtoken]
129auth_uri = http://{{ kolla_internal_address }}:{{ keystone_public_port }} 132auth_uri = http://{{ kolla_internal_address }}:{{ keystone_public_port }}
130auth_url = http://{{ kolla_internal_address }}:{{ keystone_admin_port }} 133auth_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 93b63d5..c7bc9c8 100644
--- a/docker/nova/nova-api/extend_start.sh
+++ b/docker/nova/nova-api/extend_start.sh
@@ -4,5 +4,6 @@
4# of the KOLLA_BOOTSTRAP variable being set, including empty. 4# of the KOLLA_BOOTSTRAP variable being set, including empty.
5if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then 5if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
6 nova-manage db sync 6 nova-manage db sync
7 nova-manage api_db sync
7 exit 0 8 exit 0
8fi 9fi
diff --git a/etc/kolla/passwords.yml b/etc/kolla/passwords.yml
index 369053b..050ec20 100644
--- a/etc/kolla/passwords.yml
+++ b/etc/kolla/passwords.yml
@@ -33,6 +33,7 @@ glance_database_password: "password"
33glance_keystone_password: "password" 33glance_keystone_password: "password"
34 34
35nova_database_password: "password" 35nova_database_password: "password"
36nova_api_database_password: "password"
36nova_keystone_password: "password" 37nova_keystone_password: "password"
37 38
38neutron_database_password: "password" 39neutron_database_password: "password"