Major upgrades reference

Major upgrades reference

Major Upgrade Scripts

This section describes in detail the scripts that are used in the upgrade process.

Within the main scripts directory there is an upgrade-utilities directory, which contains additional scripts that facilitate the initial upgrade process.

run-upgrade.sh

The run-upgrade.sh script controls the overall upgrade process for deployers who do not want to upgrade manually. It provides the following environment variables:

  • SCRIPTS_PATH - The path to the top level scripts directory
  • MAIN_PATH - The openstack_ansible root directory.
  • UPGRADE_PLAYBOOKS - The path to the playbooks used in upgrading

The upgrade script also bootstraps OpenStack-Ansible (using bootstrap-ansible.sh) in order to provide the new role dependencies introduced in the Queens series.

migrate_openstack_vars.py

Upstream decisions influenced the change of some variable names in Rocky. This script replaces any instances of these strings in the variable override files matching the pattern /etc/openstack_deploy/user_*.yml. Variable names within comments are updated.

This script creates files in the form VARS_MIGRATED_<filename> and places them in /etc/openstack_deploy.QUEENS directory. For example, after the script processes the /etc/openstack_deploy/user_variables.yml file, it creates the VARS_MIGRATED_user_variables.yml file in the /etc/openstack_deploy.QUEENS directory. This indicates to OpenStack-Ansible to skip this step on successive runs. The script itself does not check for this file.

This script is called by the deploy-config-changes.yml.

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.

ansible_fact_cleanup.yml

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

deploy-config-changes.yml

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.QUEENS directory.

user-secrets-adjustment.yml

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.

pip-conf-removal.yml

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.

ceph-galaxy-removal.yml

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.

Clean up the molteniron role

The molteniron service is not an official OpenStack project, and has been removed from the integrated build. It can still be optionally added, but due to the fact that it was previously integrated we need to remove it during this major upgrade to ensure that the repo build process does not try to build its wheels. The upgrade playbook molteniron-role-removal.yml has been added to clean it up.

setup-infrastructure.yml

The playbooks directory contains the setup-infrastructure.yml playbook. The run-upgrade.sh 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.

Note

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 Rocky release is optional. The run-upgrade.sh 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.

memcached-flush.yml

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.