Major Upgrade Playbooks

Major Upgrade Playbooks

This section provides details about the playbooks that are used in the upgrade process. Within the main scripts directory there is an upgrade-utilities directory, which contains an additional playbooks directory. These playbooks facilitate the upgrade process.


This playbook calls a script to remove files in the /etc/openstack_deploy/ansible_facts/ directory.


This playbook backs up the /etc/openstack_deploy directory before changing the configuration.

The``/etc/openstack_deploy`` directory is copied once to the /etc/openstack_deploy.PIKE directory.


This playbook ensures that the user secrets file is updated based on the example file in the main repository, making it possible to guarantee that all secrets move into the upgraded environment and are generated appropriately. This playbook adds only new secrets, such as those necessary for new services or new settings added to existing services. Values that were set previously are not changed.


The presence of the pip.conf file locks down all Python installations to packages on the repo servers. If this file exists on a repo server or a physical node, it causes a circular dependency issue and the upgrade fails. This playbook removes the file on all the repo servers and physical nodes.


The ceph-ansible common roles are no longer namespaced with a galaxy-style ‘.’ (ie. ceph.ceph-common is now cloned as ceph-common), due to a change in the way upstream meta dependencies are handled in the ceph roles. The roles will be cloned according to the new naming, and an upgrade playbook ceph-galaxy-removal.yml has been added to clean up the stale galaxy-named roles.


The playbooks directory contains the setup-infrastructure.yml playbook. The script calls the setup-insfrastructure.yml playbook with specific arguments to upgrade MariaDB and RabbitMQ.

For example, to run an upgrade for both components at once, run the following commands:

# openstack-ansible setup-infrastructure.yml -e 'rabbitmq_upgrade=true' \
  -e 'galera_upgrade=true'

The rabbitmq_upgrade variable tells the rabbitmq_server role to upgrade RabbitMQ.


The RabbitMQ server role installs patch releases automatically, regardless of the value of rabbitmq_upgrade. This variable controls the upgrade of only the major or minor versions.

Upgrading RabbitMQ in the Queens release is optional. The script does not automatically upgrade it. To upgrade RabbitMQ, insert the rabbitmq_upgrade: true line into a file, such as /etc/openstack_deploy/user_variables.yml.

The galera_upgrade variable tells the galera_server role to remove the current version of MariaDB and Galera and upgrade to the 10.*x* series.


This playbook sends the flush_all command to Memcached with the help of netcat.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.