[ English | Deutsch | 한국어 (대한민국) | English (United Kingdom) | Indonesia ]
This guide provides information about the upgrade process from Rocky to Stein for OpenStack-Ansible.
Note
You can only upgrade between sequential releases.
For upgrades between major versions, the OpenStack-Ansible repository provides
playbooks and scripts to upgrade an environment. The run-upgrade.sh
script runs each upgrade playbook in the correct order, or playbooks can be run
individually if necessary. Alternatively, a deployer can upgrade manually.
For more information about the major upgrade process, see Upgrading by using a script and Upgrading manually.
Warning
The upgrade is always under active development. Test this on a development environment first.
The Stein release series of OpenStack-Ansible contains the code for migrating from Rocky to Stein.
To upgrade from Rocky to Stein
by using the upgrade script, perform the following steps in the
openstack-ansible
directory:
Change directory to the repository clone root directory:
# cd /opt/openstack-ansible
Run the following commands:
# git checkout 19.1.8 # ./scripts/run-upgrade.sh
For more information about the steps performed by the script, see Upgrading manually.
Manual upgrades are useful for scoping the changes in the upgrade process (for example, in very large deployments with strict SLA requirements), or performing other upgrade automation beyond that provided by OpenStack-Ansible.
The steps detailed here match those performed by the run-upgrade.sh
script. You can safely run these steps multiple times.
Before starting with the upgrade, perform preflight health checks to ensure your environment is stable. If any of those checks fail, ensure that the issue is resolved before continuing.
Ensure that your OpenStack-Ansible code is on the latest Stein tagged release.
# git checkout 19.1.8
Define these variables to reduce typing when running the remaining upgrade tasks. Because these environments variables are shortcuts, this step is optional. If you prefer, you can reference the files directly during the upgrade.
# cd /opt/openstack-ansible
# export MAIN_PATH="$(pwd)"
# export SCRIPTS_PATH="${MAIN_PATH}/scripts"
Make a backup of the configuration of the environment:
# source_series_backup_file="/openstack/backup-openstack-ansible-rocky.tar.gz" # tar zcf ${source_series_backup_file} /etc/openstack_deploy /etc/ansible/ /usr/local/bin/openstack-ansible.rc
To ensure that there is no currently set ANSIBLE_INVENTORY to override the default inventory location, we unset the environment variable.
# unset ANSIBLE_INVENTORY
Bootstrap Ansible again to ensure that all OpenStack-Ansible role dependencies are in place before you run playbooks from the Stein release.
# ${SCRIPTS_PATH}/bootstrap-ansible.sh
Change to the playbooks directory to simplify the CLI commands from here on in the procedure, given that most playbooks executed are in this directory.
# cd playbooks
If there have been any OSA variable name changes or environment/inventory changes, there is a playbook to handle those changes to ensure service continuity in the environment when the new playbooks run. The playbook is tagged to ensure that any part of it can be executed on its own or skipped. Please review the contents of the playbook for more information.
# openstack-ansible "${SCRIPTS_PATH}/upgrade-utilities/deploy-config-changes.yml"
The presence of the pip.conf
file can cause build failures during the
upgrade to Stein. This playbook removes the
pip.conf
file on all servers and containers.
# openstack-ansible "${SCRIPTS_PATH}/upgrade-utilities/pip-conf-removal.yml"
Before installing the infrastructure and OpenStack, update the host machines.
# openstack-ansible setup-hosts.yml --limit '!galera_all:!rabbitmq_all'
This command is the same setting up hosts on a new installation. The
galera_all
and rabbitmq_all
host groups are excluded to prevent
reconfiguration and restarting of any of those containers as they need to
be updated, but not restarted.
Once that is complete, upgrade the final host groups with the flag to prevent container restarts.
# openstack-ansible setup-hosts.yml -e 'lxc_container_allow_restarts=false' --limit 'galera_all:rabbitmq_all'
Upgrades galera version from 10.1 to 10.3 and changes the WSREP SST
method from xtrabackup-v2 to mariabackup. In the following command
we set WSREP SST method to rsync
which is backward compatible between
10.1 and 10.3.
# openstack-ansible galera-install.yml -e galera_wsrep_sst_method=rsync -e galera_upgrade=true
We can now go ahead with the upgrade of all the infrastructure components. To ensure that rabbitmq and mariadb are upgraded, we pass the appropriate flags.
# openstack-ansible setup-infrastructure.yml -e 'galera_upgrade=true' -e 'rabbitmq_upgrade=true'
With this complete, we can no restart the mariadb containers one at a time, ensuring that each is started, responding, and synchronized with the other nodes in the cluster before moving on to the next steps. This step allows the LXC container configuration that you applied earlier to take effect, ensuring that the containers are restarted in a controlled fashion.
# openstack-ansible "${SCRIPTS_PATH}/upgrade-utilities/galera-cluster-rolling-restart.yml"
We can now go ahead with the upgrade of all the OpenStack components.
# openstack-ansible setup-openstack.yml
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.