Merge "Implement data migrations for rolling upgrades"
This commit is contained in:
commit
13f75d0ed1
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- The ``os_cinder`` role now provides for doing
|
||||||
|
online data migrations once the db sync has
|
||||||
|
been completed. The data migrations will not
|
||||||
|
be executed until the boolean variable
|
||||||
|
``cinder_all_software_updated`` is true. This
|
||||||
|
variable will need to be set by the playbook
|
||||||
|
consuming the role.
|
@ -17,4 +17,45 @@
|
|||||||
command: "{{ cinder_bin }}/cinder-manage db sync"
|
command: "{{ cinder_bin }}/cinder-manage db sync"
|
||||||
become: yes
|
become: yes
|
||||||
become_user: "{{ cinder_system_user_name }}"
|
become_user: "{{ cinder_system_user_name }}"
|
||||||
|
when:
|
||||||
|
- "ansible_local['openstack_ansible']['cinder']['need_db_sync'] | bool"
|
||||||
changed_when: false
|
changed_when: false
|
||||||
|
register: dbsync
|
||||||
|
|
||||||
|
- name: Disable the db sync requirement
|
||||||
|
ini_file:
|
||||||
|
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
||||||
|
section: cinder
|
||||||
|
option: need_db_sync
|
||||||
|
value: False
|
||||||
|
when:
|
||||||
|
- dbsync | succeeded
|
||||||
|
|
||||||
|
- name: Record the need for online data migrations
|
||||||
|
ini_file:
|
||||||
|
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
||||||
|
section: cinder
|
||||||
|
option: need_online_data_migrations
|
||||||
|
value: True
|
||||||
|
when:
|
||||||
|
- dbsync | succeeded
|
||||||
|
|
||||||
|
- name: Perform online data migrations
|
||||||
|
command: "{{ cinder_bin }}/cinder-manage db online-data-migrations"
|
||||||
|
become: yes
|
||||||
|
become_user: "{{ cinder_system_user_name }}"
|
||||||
|
when:
|
||||||
|
- "(cinder_all_software_updated | default('no')) | bool"
|
||||||
|
- "ansible_local['openstack_ansible']['cinder']['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: cinder
|
||||||
|
option: need_online_data_migrations
|
||||||
|
value: False
|
||||||
|
when:
|
||||||
|
- data_migrations | succeeded
|
||||||
|
|
||||||
|
@ -112,6 +112,36 @@
|
|||||||
virtualenv-tools --update-path=auto --reinitialize {{ cinder_bin | dirname }}
|
virtualenv-tools --update-path=auto --reinitialize {{ cinder_bin | dirname }}
|
||||||
when: cinder_get_venv | changed
|
when: cinder_get_venv | changed
|
||||||
|
|
||||||
|
- name: Record the need for a db sync
|
||||||
|
ini_file:
|
||||||
|
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
||||||
|
section: cinder
|
||||||
|
option: need_db_sync
|
||||||
|
value: True
|
||||||
|
when: cinder_get_venv | changed or
|
||||||
|
cinder_venv_dir | changed or
|
||||||
|
install_packages | changed
|
||||||
|
|
||||||
|
- name: Initialise the online data migration local fact
|
||||||
|
ini_file:
|
||||||
|
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
||||||
|
section: cinder
|
||||||
|
option: need_online_data_migrations
|
||||||
|
value: False
|
||||||
|
when: cinder_get_venv | changed or
|
||||||
|
cinder_venv_dir | changed or
|
||||||
|
install_packages | changed
|
||||||
|
|
||||||
|
- name: Record the need for a service restart
|
||||||
|
ini_file:
|
||||||
|
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
||||||
|
section: cinder
|
||||||
|
option: need_service_restart
|
||||||
|
value: True
|
||||||
|
when: cinder_get_venv | changed or
|
||||||
|
cinder_venv_dir | changed or
|
||||||
|
install_packages | changed
|
||||||
|
|
||||||
- name: Record the venv tag deployed
|
- name: Record the venv tag deployed
|
||||||
ini_file:
|
ini_file:
|
||||||
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
||||||
|
@ -33,21 +33,28 @@
|
|||||||
tags:
|
tags:
|
||||||
- cinder-install
|
- cinder-install
|
||||||
|
|
||||||
|
- name: refresh local facts
|
||||||
|
setup:
|
||||||
|
filter: ansible_local
|
||||||
|
gather_subset: "!all"
|
||||||
|
tags:
|
||||||
|
- cinder-config
|
||||||
|
|
||||||
- include: cinder_post_install.yml
|
- include: cinder_post_install.yml
|
||||||
tags:
|
tags:
|
||||||
- cinder-config
|
- cinder-config
|
||||||
|
|
||||||
- include: cinder_db_setup.yml
|
- include: cinder_db_setup.yml
|
||||||
when:
|
when:
|
||||||
- groups['cinder_all'] | length > 0
|
- groups['cinder_api'] | length > 0
|
||||||
- inventory_hostname == groups['cinder_all'][0]
|
- inventory_hostname == groups['cinder_api'][0]
|
||||||
tags:
|
tags:
|
||||||
- cinder-config
|
- cinder-config
|
||||||
|
|
||||||
- include: cinder_service_setup.yml
|
- include: cinder_service_setup.yml
|
||||||
when:
|
when:
|
||||||
- groups['cinder_all'] | length > 0
|
- groups['cinder_api'] | length > 0
|
||||||
- inventory_hostname == groups['cinder_all'][0]
|
- inventory_hostname == groups['cinder_api'][0]
|
||||||
tags:
|
tags:
|
||||||
- cinder-config
|
- cinder-config
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user