Add upgrade tasks for overcloud deployment
Change-Id: Iee02924908c938828669cf3d8d03c34eeda32183
This commit is contained in:
parent
b4e59672f7
commit
741bf8d002
|
@ -0,0 +1,6 @@
|
|||
[gerrit]
|
||||
host=review.gerrithub.io
|
||||
port=29418
|
||||
project=redhat-openstack/ansible-role-tripleo-overcloud-upgrade.git
|
||||
defaultbranch=master
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
Ansible-role-tripleo-overcloud-upgrade
|
||||
======================================
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
This role can be used on top of an existing Overcloud deployment.
|
||||
You just need to provide the required inventory file (see tests/ for more
|
||||
details).
|
||||
|
||||
Role Variables
|
||||
--------------
|
||||
|
||||
Here is the default parameters for overcloud upgrade role:
|
||||
|
||||
```
|
||||
# pre upgrade settings:
|
||||
oc_dns_server: 192.168.122.1
|
||||
# set-repo settings:
|
||||
target_upgrade_version: mitaka
|
||||
delorean_hash: current-passed-ci
|
||||
repos:
|
||||
- delorean.repo
|
||||
- delorean-deps.repo
|
||||
yum_repo_path: /etc/yum.repos.d/
|
||||
# Url of the delorean repos:
|
||||
repos_url:
|
||||
- http://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/{{ delorean_hash | default('current-passed-ci')}}/delorean.repo
|
||||
- http://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/delorean-deps.repo
|
||||
```
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
Depends on:
|
||||
Tripleo-quickstart:
|
||||
https://github.com/redhat-openstack/tripleo-quickstart.git
|
||||
Ansible-role-tripleo-overcloud:
|
||||
https://github.com/redhat-openstack/ansible-role-tripleo-overcloud.git
|
||||
|
||||
|
||||
Example Playbook
|
||||
----------------
|
||||
|
||||
```
|
||||
- name: Upgrade overcloud
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
sudo: yes
|
||||
roles:
|
||||
- ansible-role-tripleo-overcloud-upgrade
|
||||
```
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
Apache
|
||||
|
||||
Author Information
|
||||
------------------
|
||||
|
||||
mbultel@redhat.com
|
|
@ -0,0 +1,14 @@
|
|||
[defaults]
|
||||
gathering = smart
|
||||
command_warnings = False
|
||||
retry_files_enabled = False
|
||||
callback_whitelist = profile_tasks
|
||||
|
||||
# Attempt to load custom modules whether it's installed system-wide or from a virtual environment
|
||||
test_plugins = /usr/lib/python2.7/site-packages/tripleo-quickstart/playbooks/test_plugins:$VIRTUAL_ENV/usr/local/share/tripleo-quickstart/playbooks/test_plugins:playbooks/test_plugins
|
||||
library = /usr/lib/python2.7/site-packages/tripleo-quickstart/playbooks/library:$VIRTUAL_ENV/usr/local/share/tripleo-quickstart/playbooks/library:playbooks/library
|
||||
roles_path = playbooks/roles:$VIRTUAL_ENV/usr/local/share/tripleo-quickstart/playbooks/roles:$VIRTUAL_ENV/usr/local/share/
|
||||
|
||||
|
||||
[ssh_connection]
|
||||
control_path = %(directory)s/%%h-%%r
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
# pre upgrade settings:
|
||||
oc_dns_server: 192.168.122.1
|
||||
# set-repo settings:
|
||||
target_upgrade_version: mitaka
|
||||
upgrade_delorean_hash: current-passed-ci
|
||||
repos:
|
||||
- delorean.repo
|
||||
- delorean-deps.repo
|
||||
yum_repo_path: /etc/yum.repos.d/
|
||||
# Url of the delorean repos:
|
||||
repos_url:
|
||||
- http://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/{{ upgrade_delorean_hash | default('current-passed-ci')}}/delorean.repo
|
||||
- http://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/delorean-deps.repo
|
||||
# upgrade settings:
|
||||
upgrade_working_dir: /home/stack
|
||||
tht_dir: tripleo-heat-templates
|
||||
upgrade_script: upgrade-controller-liberty.sh.j2
|
||||
upgrade_non_controller_script: /bin/upgrade-non-controller.sh
|
||||
upgrade_log: upgrade_console.log
|
||||
undercloud_upgrade_user: stack
|
||||
|
||||
# upgrade steps:
|
||||
step_pre_upgrade: false
|
||||
step_upgrade_set_repo: true
|
||||
step_upgrade_undercloud: true
|
||||
step_upgrade_overcloud: true
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
# handlers file for upgrade
|
||||
- name: restart openstack services
|
||||
service: name={{item}} state=restarted
|
||||
sudo: yes
|
||||
with_items:
|
||||
- openstack-heat-api
|
||||
- openstack-heat-engine
|
||||
- openstack-nova-api
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
# Copyright Red Hat, Inc. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
galaxy_info:
|
||||
author: redhat-openstack
|
||||
description: Ansible set of tasks for upgrading Tripleo-Overcloud
|
||||
company: Red Hat
|
||||
license: Apache2
|
||||
min_ansible_version: 2.0.0
|
||||
platforms:
|
||||
- name: EL
|
||||
versions:
|
||||
- all
|
||||
categories:
|
||||
- cloud
|
||||
- python
|
||||
- development
|
||||
- openstack
|
||||
|
||||
#dependencies:
|
||||
# - role: "common"
|
|
@ -0,0 +1,2 @@
|
|||
pbr>=1.6
|
||||
ansible==2.0.0
|
|
@ -0,0 +1,36 @@
|
|||
[metadata]
|
||||
name = ansible-role-tripleo-overcloud-upgrade
|
||||
summary = ansible-role-tripleo-overcloud-upgrade - A ansible role for upgrading a tripleo overcloud
|
||||
description-file =
|
||||
README.md
|
||||
author = RDO-CI Team
|
||||
author-email = mbultel@redhat.com, whayutin@redhat.com
|
||||
home-page = https://github.com/redhat-openstack/ansible-role-tripleo-overcloud
|
||||
classifier =
|
||||
License :: OSI Approved :: Apache Software License
|
||||
Development Status :: 4 - Beta
|
||||
Intended Audience :: Developers
|
||||
Intended Audience :: System Administrators
|
||||
Intended Audience :: Information Technology
|
||||
Topic :: Utilities
|
||||
|
||||
[global]
|
||||
setup-hooks =
|
||||
pbr.hooks.setup_hook
|
||||
|
||||
[files]
|
||||
data_files =
|
||||
usr/local/share/ansible-role-tripleo-overcloud-upgrade/defaults = ../ansible-role-tripleo-overcloud-upgrade/defaults/*
|
||||
usr/local/share/ansible-role-tripleo-overcloud-upgrade/handlers = ../ansible-role-tripleo-overcloud-upgrade/handlers/*
|
||||
usr/local/share/ansible-role-tripleo-overcloud-upgrade/meta = ../ansible-role-tripleo-overcloud-upgrade/meta/*
|
||||
usr/local/share/ansible-role-tripleo-overcloud-upgrade/tasks = ../ansible-role-tripleo-overcloud-upgrade/tasks/*
|
||||
usr/local/share/ansible-role-tripleo-overcloud-upgrade/templates = ../ansible-role-tripleo-overcloud-upgrade/templates/*
|
||||
usr/local/share/ansible-role-tripleo-overcloud-upgrade/tests = ../ansible-role-tripleo-overcloud-upgrade/tests/*
|
||||
usr/local/share/ansible-role-tripleo-overcloud-upgrade/vars = ../ansible-role-tripleo-overcloud-upgrade/vars/*
|
||||
|
||||
[wheel]
|
||||
universal = 1
|
||||
|
||||
[pbr]
|
||||
skip_authors = True
|
||||
skip_changelog = True
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright Red Hat, Inc. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import setuptools
|
||||
|
||||
setuptools.setup(
|
||||
setup_requires=['pbr'],
|
||||
pbr=True)
|
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
- include: pre-upgrade.yml
|
||||
tags:
|
||||
- upgrade-pre-tasks
|
||||
|
||||
- include: set-repo.yml
|
||||
when: step_upgrade_set_repo
|
||||
tags:
|
||||
- upgrade-repo
|
||||
|
||||
- include: upgrade-undercloud.yml
|
||||
when: step_upgrade_undercloud
|
||||
tags:
|
||||
- upgrade-undercloud
|
||||
|
||||
- include: upgrade-overcloud.yml
|
||||
when: step_upgrade_overcloud
|
||||
tags:
|
||||
- upgrade-overcloud
|
||||
|
||||
- include: post-upgrade.yml
|
||||
tags:
|
||||
- upgrade-post-tasks
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
- name: Update overcloud dns server
|
||||
sudo: yes
|
||||
lineinfile:
|
||||
regexp: "nameserver"
|
||||
line: "nameserver {{ oc_dns_server }}"
|
||||
dest: "/etc/resolv.conf"
|
||||
when: step_pre_upgrade
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
- name: Clean up the repos
|
||||
sudo: yes
|
||||
file: path=/etc/yum.repos.d/{{ item }} state=absent
|
||||
with_items: "{{ repos }}"
|
||||
|
||||
- name: Get delorean repo
|
||||
sudo: yes
|
||||
get_url: url={{ item }} dest={{ yum_repo_path }}
|
||||
with_items: "{{ repos_url }}"
|
||||
|
||||
- name: Clean yum cache
|
||||
sudo: yes
|
||||
shell: yum clean all
|
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
- name: Make sure no Tht repo is present
|
||||
file: path={{ upgrade_working_dir }}/{{ tht_dir }} state=absent
|
||||
|
||||
- name: Copy new Tht directory to the upgrade working dir
|
||||
shell: >
|
||||
cp -R /usr/share/openstack-tripleo-heat-templates \
|
||||
{{ upgrade_working_dir }}/{{ tht_dir }};
|
||||
|
||||
- name: Add the no ssh finger print checking into upgrade-non-controller.sh
|
||||
sudo: yes
|
||||
shell: >
|
||||
sed -i 's/ssh/ssh -o StrictHostKeyChecking=no/' \
|
||||
{{ upgrade_non_controller_script }}
|
||||
|
||||
- name: Create overcloud deploy script
|
||||
template:
|
||||
src: "{{ upgrade_script }}"
|
||||
dest: "{{ upgrade_working_dir }}/overcloud-upgrade.sh"
|
||||
mode: 0755
|
||||
|
||||
- name: Upgrade the overcloud
|
||||
shell: >
|
||||
{{ upgrade_working_dir }}/overcloud-upgrade.sh > {{ upgrade_log }} 2>&1
|
||||
when: step_upgrade_overcloud
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
- name: Execute yum update on the undercloud
|
||||
sudo: yes
|
||||
yum: name=* state=latest
|
||||
|
||||
- name: Upgrade the undercloud
|
||||
shell: openstack undercloud install &> upgrade_undercloud.log
|
||||
when: step_upgrade_undercloud
|
||||
notify:
|
||||
- restart openstack services
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
# Script for set up the target repositories for Upgrade
|
||||
|
||||
set -eux
|
||||
|
||||
curl -o /etc/yum.repos.d/delorean.repo http://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/{{ delorean_hash | default('current-passed-ci')}}/delorean.repo
|
||||
|
||||
curl -o /etc/yum.repos.d/delorean-deps.repo http://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/delorean-deps.repo
|
||||
|
||||
# We need EPEL for the ceph packages currently, so make EPEL
|
||||
# available only for those packages.
|
||||
cat <<-EOF>>/etc/yum.repos.d/ceph.repo
|
||||
[ceph]
|
||||
name=Ceph packages from EPEL
|
||||
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=x86_64
|
||||
failovermethod=priority
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
includepkgs=ceph,leveldb,libcephfs1,python-cephfs
|
||||
EOF
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
source {{ upgrade_working_dir }}/stackrc
|
||||
echo "execute script delivery"
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
-e {{ tht_dir }}/overcloud-resource-registry-puppet.yaml \
|
||||
-e {{ tht_dir }}/environments/puppet-pacemaker.yaml \
|
||||
-e {{ tht_dir }}/environments/major-upgrade-pacemaker-init.yaml
|
||||
|
||||
echo "execute major upgrade controller"
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
-e {{ tht_dir }}/overcloud-resource-registry-puppet.yaml \
|
||||
-e {{ tht_dir }}/environments/puppet-pacemaker.yaml \
|
||||
-e {{ tht_dir }}/environments/major-upgrade-pacemaker.yaml
|
||||
|
||||
echo "get compute uuid and update compute"
|
||||
compute_uuid=`nova list | grep overcloud-novacompute-0 | awk '{ print $2; }'`
|
||||
{{ upgrade_non_controller_script }} --upgrade $compute_uuid
|
||||
|
||||
echo "get ceph uuid and update ceph"
|
||||
ceph_uuid=`nova list | grep overcloud-cephstorage-0 | awk '{ print $2; }'`
|
||||
{{ upgrade_non_controller_script }} --upgrade $ceph_uuid
|
||||
|
||||
echo "execute converge"
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
-e {{ tht_dir }}/overcloud-resource-registry-puppet.yaml \
|
||||
-e {{ tht_dir }}/environments/puppet-pacemaker.yaml \
|
||||
-e {{ tht_dir }}/environments/major-upgrade-pacemaker-converge.yaml
|
|
@ -0,0 +1,6 @@
|
|||
- name: Set undercloud repo
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
sudo: yes
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-repo'] }
|
|
@ -0,0 +1,2 @@
|
|||
[undercloud]
|
||||
undercloud
|
|
@ -0,0 +1,31 @@
|
|||
- name: Execute pre-task for upgrade
|
||||
hosts: overcloud
|
||||
gather_facts: no
|
||||
sudo: yes
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-pre-tasks'] }
|
||||
|
||||
- name: Set undercloud repo
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
sudo: yes
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-repo'] }
|
||||
|
||||
- name: Upgrade the undercloud
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-undercloud'] }
|
||||
|
||||
- name: Upgrade the overcloud
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-overcloud'] }
|
||||
|
||||
- name: Execute post upgrade tasks
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-post-tasks'] }
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
# vars file for upgrade
|
Loading…
Reference in New Issue