tripleo-quickstart-extras/playbooks/multinode-overcloud-upgrade...

89 lines
3.3 KiB
YAML

- name: Generate repo-setup script for overcloud upgrade
hosts: undercloud
tags:
- overcloud-upgrade
gather_facts: no
vars:
repo_run_live: false
repo_setup_script: "repo-setup-{{ target_upgrade_version }}.sh"
# Avoid running yum update, only set up repos
repo_setup_run_update: false
roles:
- role: repo-setup
when: containerized_overcloud_upgrade|bool
role: install-built-repo
when: hostvars['undercloud']['compressed_gating_repo'] is defined and mixed_upgrade|default(false)|bool
- name: Prepare containers for Upgrade
hosts: undercloud
gather_facts: no
tags:
- overcloud-prep-containers
roles:
- role: overcloud-prep-containers
# This need the new repo in place.
update_containers: true
# This enable us to run it even on non-containerized overcloud deployment
# ie, ffu upgrade where deployment is on newton.
containerized_overcloud: "{{prep_container_upgrade_run|default(false)}}"
# Do not overwrite the deployment log if any.
overcloud_prep_containers_log: "upgrade_overcloud_prep_containers.log"
overcloud_prep_containers_script: "upgrade_overcloud_prep_containers.sh"
when: containerized_overcloud_upgrade|bool
#FIXME(chem): tech-debt LP#1749740
- name: Upgrade TripleO
hosts: undercloud
gather_facts: yes
tags:
- overcloud-upgrade
vars:
repo_setup_script: "{{ working_dir }}/repo-setup-{{ target_upgrade_version }}.sh"
tripleo_upgrade_branch: "{{ 'stable/'+target_upgrade_version if target_upgrade_version!='master' else target_upgrade_version }}"
tasks:
- name: Filter ansible_br_*
setup:
filter: ansible_br_*
- name: Check repo setup script exists
stat:
path: "{{ repo_setup_script }}"
register: repo_script_status
- name: Set fact with repo script content or false
set_fact:
update_repo_script_content: "{% if repo_script_status.stat.exists %}{{ lookup('file', repo_setup_script) }}{% else %}false{% endif %}"
- name: Copy current T-H-T directory to the upgrade working dir
synchronize:
src: /usr/share/openstack-tripleo-heat-templates
dest: "{{ overcloud_templates_path }}"
when: containerized_overcloud_upgrade|bool
- name: Check if we have a local copy of the tripleo-upgrade role
stat:
path: /opt/stack/new/tripleo-upgrade
register: tripleo_upgrade_local_role
- name: Set the pip URL when we have a local copy of the role
set_fact:
tripleo_upgrade_pip_url: "file:///opt/stack/new/tripleo-upgrade#egg=tripleo-upgrade"
when: tripleo_upgrade_local_role.stat.exists
- name: Set the pip URL when we DO NOT have a local copy of the role
set_fact:
tripleo_upgrade_pip_url: "git+https://git.openstack.org/openstack/tripleo-upgrade.git@{{ tripleo_upgrade_branch }}#egg=tripleo-upgrade"
when: tripleo_upgrade_local_role.stat.exists == False
- name: Install tripleo-upgrade role "{{ tripleo_upgrade_branch }}" branch
pip:
name: "{{ tripleo_upgrade_pip_url }}"
executable: "{{ local_working_dir }}/bin/pip"
- name: Run Tripleo-upgrade role
vars:
upgrade_init_command: "{{ update_repo_script_content }}"
include_role:
name: tripleo-upgrade
when: containerized_overcloud_upgrade|bool or undercloud_upgrade|default(false)|bool