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.
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 directoryMAIN_PATH
- The openstack_ansible
root directory.UPGRADE_PLAYBOOKS
- The path to the playbooks used in upgradingThe upgrade script also bootstraps OpenStack-Ansible (using
bootstrap-ansible.sh
) in order to provide the new role dependencies
introduced in the Pike series.
Upstream decisions influenced the change of some variable names in
Queens. 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.PIKE
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.PIKE
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.
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 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 Queens 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.
This playbook sends the flush_all
command to Memcached with the help of
netcat.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.