def pre_upgrade(self):
utilities = os.path.join(
self._root, 'scripts', 'upgrade-utilities', 'playbooks')
playbooks = os.path.join(self._root, 'playbooks')
# According to the upgrade document, there are steps that must be
# executed before trying to upgrade OpenStack to new version. This
# this hook returns a chain of this steps so operator doesn't need
# to run them manually.
#
# http://docs.openstack.org/developer/openstack-ansible/upgrade-guide/manual-upgrade.html
return celery.chain(*[
# Bootstrapping Ansible again ensures that all OpenStack Ansible
# role dependencies are in place before running playbooks of new
# release.
tasks.execute.si(
os.path.join(self._root, 'scripts', 'bootstrap-ansible.sh'),
cwd=self._root,
),
# Some configuration may changed, and old facts should be purged.
self._run_playbook.si(
os.path.join(utilities, 'ansible_fact_cleanup.yml'),
),
# The user configuration files in /etc/openstack_deploy/ and
# the environment layout in /etc/openstack_deploy/env.d may
# have new name values added in new release.
self._run_playbook.si(
os.path.join(utilities, 'deploy-config-changes.yml'),
),
# Populate user_secrets.yml with new secrets added in new
# release.
self._run_playbook.si(
os.path.join(utilities, 'user-secrets-adjustment.yml'),
),
# The presence of pip.conf file can cause build failures when
# upgrading. So better remove it everywhere.
self._run_playbook.si(
os.path.join(utilities, 'pip-conf-removal.yml'),
),
# Update the configuration of the repo servers and build a new
# packages required by new release.
self._run_playbook.si(
os.path.join(playbooks, 'repo-install.yml'),
cwd=playbooks,
),
])
评论列表
文章目录