Package upgrade during normal operations might be risky since often involve service restarts. It's better to avoid that when possible and perform package upgrade only during major/minor upgrades. We change default value of package_state and adjust doc and upgrade script to reflect this change. Change-Id: I9971a259a207b263df48a77d5ac74752f044873a
3.6 KiB
Minor version upgrade
Upgrades between minor versions of OpenStack-Ansible require updating the repository clone to the latest minor release tag, updating the ansible roles, and then running playbooks against the target hosts. This section provides instructions for those tasks.
Prerequisites
To avoid issues and simplify troubleshooting during the upgrade,
disable the security hardening role by setting the
apply_security_hardening variable to False in
the user_variables.yml
file, and backup your openstack-ansible installation.
Execute a minor version upgrade
A minor upgrade typically requires the following steps:
Change directory to the cloned repository's root directory:
# cd /opt/openstack-ansibleEnsure that your OpenStack-Ansible code is on the latest tagged release:
# git checkout
Update all the dependent roles to the latest version:
# ./scripts/bootstrap-ansible.shChange to the playbooks directory:
# cd playbooksUpdate the hosts:
# openstack-ansible setup-hosts.yml -e package_state=latestUpdate the infrastructure:
# openstack-ansible -e rabbitmq_upgrade=true \ setup-infrastructure.ymlUpdate all OpenStack services:
# openstack-ansible setup-openstack.yml -e package_state=latest
Note
You can limit upgrades to specific OpenStack components. See the following section for details.
Upgrade specific components
You can limit upgrades to specific OpenStack components by running each of the component playbooks against groups.
For example, you can update only the Compute hosts by running the following command:
# openstack-ansible os-nova-install.yml --limit nova_compute
To update only a single Compute host, run the following command:
# openstack-ansible os-nova-install.yml --limit <node-name> \
--skip-tags 'nova-key'
Note
Skipping the nova-key tag is necessary so that the keys
on all Compute hosts are not gathered.
To see which hosts belong to which groups, use the
inventory-manage.py script to show all groups and their
hosts. For example:
Change directory to the repository clone root directory:
# cd /opt/openstack-ansibleShow all groups and which hosts belong to them:
# ./scripts/inventory-manage.py -GShow all hosts and the groups to which they belong:
# ./scripts/inventory-manage.py -g
To see which hosts a playbook runs against, and to see which tasks are performed, run the following commands (for example):
Change directory to the repository clone playbooks directory:
# cd /opt/openstack-ansible/playbooksSee the hosts in the
nova_computegroup that a playbook runs against:# openstack-ansible os-nova-install.yml --limit nova_compute \ --list-hostsSee the tasks that are executed on hosts in the
nova_computegroup:# openstack-ansible os-nova-install.yml --limit nova_compute \ --skip-tags 'nova-key' \ --list-tasks