Files
openstack-ansible/doc/source/upgrade-guide/manual-upgrade.rst
Kevin Carter 1d290828b9 RFC1034/5 hostname upgrade
The changes created here allow for upgrades to take place
without impacting cluster availability in cases where a
a service may be dependent on a non-compliant hostname(s).

Upgrade playbook has been added for ensuring hostname aliases
are correctly created. Specific entries for nova, heat, cinder
neutron, galera and rabbitmq have been added to ensure all
nodes are able to contact all other nodes using a potentially
non-compliant hostname entry.

To make setting the domain name easy across the cluster a new
global variable has been created ``openstack_domain``. This
variable has a default value of "openstack.local".

Because the initial release of Mitaka (13.0.0) did not contain
the RFC1034/5 updates these changes are needed to guarentee
clusters deployed on our initial release are upgradable to
Newton (14.0.0).

Partial-Bug: #1577245
Partial-Bug: #1586148
Related-Change-Id: Ib1e3b6f02758906e3ec7ab35737c1a58fcbca216
Change-Id: I6901409c1dc5ac8ff4f0af988132b5ac71f6379e
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-06-01 18:54:52 +00:00

4.5 KiB

Manual Upgrade Steps

The steps detailed here match those performed by the run-upgrade.sh script. Any of these steps can safely be run multiple times.

Check out the Newton release

Ensure your OpenStack-Ansible code is on the latest Newton release tag (14.x.x).

# git checkout stable/newton
# LATEST_TAG=$(git describe --abbrev=0 --tags)
# git checkout ${LATEST_TAG}

Preparing the shell variables

Note

This step is optional, since these environment variables are simply shortcuts. Files can be referenced directly.

From the openstack-ansible root directory, run the following commands:

# export MAIN_PATH="$(pwd)"
# export SCRIPTS_PATH="${MAIN_PATH}/scripts"
# export UPGRADE_PLAYBOOKS="${SCRIPTS_PATH}/upgrade-utilities/playbooks"

These variables reduce typing when running the remaining upgrade tasks.

Re-bootstrap Ansible for Newton

Bootstrapping Ansible again ensures that all OpenStack-Ansible role dependencies are in place before running playbooks from the Newton release.

# ${SCRIPTS_PATH}/bootstrap-ansible.sh

Change to playbooks directory

Change to the playbooks directory so that the OpenStack-Ansible dynamic inventory is found automatically.

# cd playbooks

Update configuration and environment files

The user configuration files in /etc/openstack_deploy/ and the environment layout in /etc/openstack_deploy/env.d have new name values added in Newton.

See config-change-playbook for more details.

# openstack-ansible "${UPGRADE_PLAYBOOKS}/deploy-config-changes.yml"

Update user secrets file

Newton introduces new user secrets to the stack. These are populated automatically with the following playbook.

See user-secrets-playbook for more details.

# openstack-ansible "${UPGRADE_PLAYBOOKS}/user-secrets-adjustment.yml"

Upgrade hosts

Before installing the infrastructure and OpenStack, update the host machines.

# openstack-ansible setup-hosts.yml --limit '!galera_all[0]'

This command is the same as doing host setups on a new install. The first member of the galera_all host group is excluded to prevent simultaneous restarts of all Galera containers.

Update Galera LXC container configuration

Update the first Galera container's configuration independently.

# openstack-ansible lxc-containers-create.yml --limit galera_all[0]

This command is a subset of the host setup playbook, limited to the first member of the galera_all host group so that its container is restarted only after other Galera containers have been restarted in the previous step.

Cleanup pip.conf file in the repo_servers

If a pip.conf file exists within the repository server infrastructure, it can cause build failures when upgrading to Newton. This play removes the pip.conf file from the repository servers.

See repo-server-pip-conf-removal for more details.

# openstack-ansible "${UPGRADE_PLAYBOOKS}/repo-server-pip-conf-removal.yml"

Ensure hostname aliases are created for non-RFC1034/35 hostnames

Ensure an alias is created for non-RFC1034/35 hostnames.

See old-hostname-compatibility for details.

# openstack-ansible "${UPGRADE_PLAYBOOKS}/old-hostname-compatibility.yml"

Upgrade infrastructure

Running the standard OpenStack-Ansible infrastructure playbook applies the relevant Newton settings and packages. This upgrade is required for the Newton release of OpenStack-Ansible.

For certain versions of Mitaka, you must upgrade the RabbitMQ service.

See setup-infra-playbook for details.

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

Upgrade OpenStack

Upgrade the OpenStack components with the same installation playbook, without any additional options.

# openstack-ansible setup-openstack.yml