openstack-ansible/doc/source/user/reference-upgrade-playbooks.rst
Logan V 9ade47f72f Add ceph-ansible v3 support
ceph-ansible has undergone significant refactoring in their v3
development, adding new required roles such as ceph-defaults and
ceph-config, which are used to provide vars and configuration to
the ceph service roles. These roles must be executed before the
service roles to avoid missing vars[1][2].

During the v3 refactoring, ceph-common was removed as a galaxy-style
role dependency in the service roles meta files[3]. This means we
will need to explicitly execute ceph-common from now on also.

This change adds the defaults and config roles and executes them.
Also some minor cleanup such as alphabetizing the OpenStack roles
list is done.

Also added is an upgrade playbook, reno, and docs to assist in
cleaning up the older galaxy-named ceph common roles which are
no longer galaxy namespaced in our cloning configuration.

[1] http://jenkins-logs.objects-us-dfw-1.cloud.lstn.net/osa-ci/490192/1/21/logs/console.log
[2] https://github.com/ceph/ceph-ansible/issues/1737
[3] https://github.com/ceph/ceph-ansible/pull/1727

Conflicts:
  ansible-role-requirements.yml

Change-Id: Ia8c0cb0a23f331fce7914afbfc05ef54ee3ffb0e
(cherry picked from commit a53f1aea96)
2017-10-24 16:14:07 +00:00

3.4 KiB

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

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