2448db8064
This patch removes the conditional inclusion of the notification section of the service configuration. This ensures that oslo.messaging notifications use the correct transport for deployments that have separate rpc and notify messaging backends. For example, if the transport_url is not provided in the notification section of the service configuration, the transport_url specified in the default section will be used instead. Change-Id: Ia66fe9a4c5c18f31fa50e06017389489be8c66a4
151 lines
5.5 KiB
YAML
151 lines
5.5 KiB
YAML
---
|
|
# Copyright 2014, Rackspace US, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
- name: Create DB for service
|
|
mysql_db:
|
|
login_user: "{{ galera_root_user }}"
|
|
login_password: "{{ galera_root_password }}"
|
|
login_host: "{{ nova_galera_address }}"
|
|
name: "{{ item }}"
|
|
state: "present"
|
|
delegate_to: "{{ nova_db_setup_host }}"
|
|
no_log: True
|
|
with_items:
|
|
- "{{ nova_galera_database }}"
|
|
- "{{ nova_api_galera_database }}"
|
|
- "{{ nova_cell0_database }}"
|
|
|
|
- name: Grant access to DBs for the services
|
|
mysql_user:
|
|
login_user: "{{ galera_root_user }}"
|
|
login_password: "{{ galera_root_password }}"
|
|
login_host: "{{ nova_galera_address }}"
|
|
name: "{{ item['name'] }}"
|
|
password: "{{ item['password'] }}"
|
|
host: "{{ item['host'] }}"
|
|
state: "present"
|
|
priv: "{{ item['database'] }}.*:ALL"
|
|
append_privs: "{{ item['db_append_privs'] | default(omit) }}"
|
|
delegate_to: "{{ nova_db_setup_host }}"
|
|
with_items:
|
|
- name: "{{ nova_galera_user }}"
|
|
password: "{{ nova_container_mysql_password }}"
|
|
host: "localhost"
|
|
database: "{{ nova_galera_database }}"
|
|
db_append_privs: "yes"
|
|
- name: "{{ nova_galera_user }}"
|
|
password: "{{ nova_container_mysql_password }}"
|
|
host: "%"
|
|
database: "{{ nova_galera_database }}"
|
|
db_append_privs: "yes"
|
|
- name: "{{ nova_api_galera_user }}"
|
|
password: "{{ nova_api_container_mysql_password }}"
|
|
host: "localhost"
|
|
database: "{{ nova_api_galera_database }}"
|
|
db_append_privs: "yes"
|
|
- name: "{{ nova_api_galera_user }}"
|
|
password: "{{ nova_api_container_mysql_password }}"
|
|
host: "%"
|
|
database: "{{ nova_api_galera_database }}"
|
|
db_append_privs: "yes"
|
|
- name: "{{ nova_api_galera_user }}"
|
|
password: "{{ nova_api_container_mysql_password }}"
|
|
host: "localhost"
|
|
database: "{{ nova_cell0_database }}"
|
|
db_append_privs: "yes"
|
|
- name: "{{ nova_api_galera_user }}"
|
|
password: "{{ nova_api_container_mysql_password }}"
|
|
host: "%"
|
|
database: "{{ nova_cell0_database }}"
|
|
db_append_privs: "yes"
|
|
no_log: True
|
|
|
|
- name: Synchronize the nova API DB schema
|
|
command: "{{ nova_bin }}/nova-manage api_db sync"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
changed_when: false
|
|
|
|
# This is idempotent and therefore safe for greenfield
|
|
# and brownfield installations.
|
|
- name: Create the cell0 mapping entry in the nova API DB
|
|
command: >-
|
|
{{ nova_bin }}/nova-manage cell_v2 map_cell0
|
|
--database_connection mysql+pymysql://{{ nova_api_galera_user }}:{{ nova_api_container_mysql_password }}@{{ nova_api_galera_address }}/{{ nova_cell0_database }}?charset=utf8
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
changed_when: false
|
|
|
|
- name: Synchronize the nova DB schema
|
|
command: "{{ nova_bin }}/nova-manage db sync"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
changed_when: false
|
|
|
|
- name: Perform online data migrations
|
|
command: "{{ nova_bin }}/nova-manage db online_data_migrations"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
when:
|
|
- "(nova_all_software_updated | default('no')) | bool"
|
|
- "ansible_local['openstack_ansible']['nova']['need_online_data_migrations'] | bool"
|
|
changed_when: false
|
|
register: data_migrations
|
|
|
|
- name: Disable the online migrations requirement
|
|
ini_file:
|
|
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
|
section: nova
|
|
option: need_online_data_migrations
|
|
value: False
|
|
when:
|
|
- not data_migrations | skipped
|
|
- data_migrations is succeeded
|
|
|
|
- name: Create the cell1 mapping entry in the nova API DB
|
|
command: >-
|
|
{{ nova_bin }}/nova-manage cell_v2 create_cell
|
|
--name {{ nova_cell1_name }}
|
|
--database_connection mysql+pymysql://{{ nova_galera_user }}:{{ nova_container_mysql_password }}@{{ nova_galera_address }}/{{ nova_galera_database }}?charset=utf8
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
register: nova_cell1_create
|
|
# When upgrading, cell1 will already exist and nova-manage will
|
|
# give a return code of 2, so we therefore know that if the
|
|
# return code is:
|
|
# 0: the cell mapping record in the nova API database was
|
|
# successfully implemented (greenfield install)
|
|
# 2: the cell mapping record in the nova API database already
|
|
# exists (brownfield install)
|
|
failed_when: "nova_cell1_create.rc not in [0, 2]"
|
|
changed_when: "nova_cell1_create.rc == 0"
|
|
|
|
# When upgrading we need to map existing instances to the new cell1
|
|
# To do this we need the cell UUID.
|
|
- name: Get UUID of new Nova Cell
|
|
shell: "{{ nova_bin }}/nova-manage cell_v2 list_cells | grep ' {{ nova_cell1_name }} '"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
register: cell1_uuid
|
|
changed_when: false
|
|
when: "nova_cell1_create.rc == 0"
|
|
|
|
- name: Map instances to new Cell1
|
|
command: "{{ nova_bin }}/nova-manage cell_v2 map_instances --cell_uuid {{ cell1_uuid['stdout'].split()[3] }}"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
changed_when: false
|
|
when: "nova_cell1_create.rc == 0"
|