--- # Copyright 2015, 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: Set venv path hosts: "keystone_all[0]:glance_all[0]:cinder_all[0]:nova_api_os_compute[0]:neutron_server[0]:heat_all[0]:ironic_conductor[0]" user: root vars: file_name: "{{ venv_tar_location | basename }}" tasks: - name: Set venv fact set_fact: venv_path: "/opt/{{ file_name.split('.tgz')[0] }}" - name: Keystone DB Migrations hosts: "keystone_all[0]" user: root tasks: - name: Perform a Keystone DB sync command: "{{ venv_path }}/bin/keystone-manage db_sync" - name: Glance DB Migrations hosts: "glance_all[0]" user: root tasks: - name: Perform a Glance DB sync command: "{{ venv_path }}/bin/glance-manage db_sync" - name: Cinder DB Migrations hosts: "cinder_all[0]" user: root tasks: - name: Perform a cinder DB sync command: "{{ venv_path }}/bin/cinder-manage db sync" - name: Nova DB Migrations hosts: "nova_api_os_compute[0]" user: root tasks: - name: Run nova null uuid checks command: "{{ venv_path }}/bin/nova-manage db null_instance_uuid_scan --delete" - name: Perform a Nova DB sync command: "{{ venv_path }}/bin/nova-manage db sync" - name: Perform Nova online data migrations command: "{{ venv_path }}/bin/nova-manage db online_data_migrations" - name: Stop Neutron Server hosts: "neutron_server" user: root tasks: - name: Stop Neutron server service: name: "neutron-server" state: stopped pattern: "neutron-server" - name: Neutron DB Migrations hosts: "neutron_server[0]" user: root vars: neutron_plugins: ml2: plugin_ini: "plugins/ml2/ml2_conf.ini" ml2.lxb: plugin_ini: "plugins/ml2/ml2_conf.ini" plumgrid: plugin_ini: "plugins/plumgrid/plumgrid.ini" nuage: plugin_ini: "plugins/nuage/nuage.ini" neutron_system_user_name: "neutron" neutron_db_revision: "heads" neutron_db_plugin: "/etc/neutron/{{ neutron_plugins[neutron_plugin_type | default('ml2')]['plugin_ini'] }}" neutron_db_config: "/etc/neutron/neutron.conf" tasks: - name: Perform a Neutron DB Upgrade command: "{{ venv_path }}/bin/neutron-db-manage --config-file {{ neutron_db_config }} --config-file {{ neutron_db_plugin }} upgrade {{ neutron_db_revision }}" sudo: yes sudo_user: "{{ neutron_system_user_name }}" - name: Heat DB Migrations hosts: "heat_all[0]" user: root tasks: - name: Perform a heat DB sync command: "{{ venv_path }}/bin/heat-manage db_sync" - name: Horizon DB drop hosts: "utility_all[0]" user: root tasks: - name: Drop horizon DB - It will be recreated later command: "mysql --unbuffered -sNL -e 'drop database {{ horizon_galera_database | default('dash') }}'" register: drop_db failed_when: false changed_when: drop_db.rc == 0 - name: Ironic DB Migrations hosts: "ironic_conductor[0]" user: root tasks: - name: Update database schema command: "{{ venv_path }}/ironic-dbsync upgrade"