From 9941c90206dbe3426b48abe925b12dc42a04dab4 Mon Sep 17 00:00:00 2001 From: Anton Chevychalov Date: Wed, 1 Mar 2017 18:30:18 +0300 Subject: [PATCH] Upgrade procedure to 9.2 in deployment Add 9.2 upgrade procedure to build_cluster tool. New parameter UPDATE_TO, that allow to choose target version. Change-Id: Iba15b4c91c7350e0487fdbd790c0bcb958f218a9 --- jenkins/build_cluster/build_cluster.py | 9 +++++---- jenkins/build_cluster/config.xml | 15 +++++++++++++- jenkins/build_cluster/update_helper.sh | 28 +++++++++++++++++++++++++- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/jenkins/build_cluster/build_cluster.py b/jenkins/build_cluster/build_cluster.py index d0f03a2..c3b5d87 100755 --- a/jenkins/build_cluster/build_cluster.py +++ b/jenkins/build_cluster/build_cluster.py @@ -65,6 +65,7 @@ if cfg["ISO_URL"]: cfg["PREPARE_CLUSTER"] = os.getenv("PREPARE_CLUSTER") cfg["UPDATE_FUEL"] = os.getenv("UPDATE_FUEL") +cfg["UPDATE_TO"] = os.getenv("UPDATE_TO","latest_released_mu") cfg["ADD_CENT_REPO"] = os.getenv("ADD_CENT_REPO") cfg["RELEASE"] = os.getenv("RELEASE") cfg["HA"] = os.getenv("HA") @@ -533,15 +534,15 @@ def do_update(node): print ("ERROR: Unable to copy update script to admin node") return False - if not node.execute(["/tmp/"+UPDATE_HELPER,"first"]): - print ("ERROR: First phase of upgrade faileduuu") + if not node.execute(["/tmp/"+UPDATE_HELPER,"first",cfg["UPDATE_TO"]]): + print ("ERROR: First phase of upgrade failed") return False - node.execute(["/tmp/"+UPDATE_HELPER,"reboot"]) + node.execute(["/tmp/"+UPDATE_HELPER,"reboot",cfg["UPDATE_TO"]]) time.sleep(60 * 5) if node.put_file(UPDATE_HELPER): - return node.execute(["/tmp/"+UPDATE_HELPER,"second"]) + return node.execute(["/tmp/"+UPDATE_HELPER,"second",cfg["UPDATE_TO"]]) else: print ("ERROR: Unable to copy update script to admin node") return False diff --git a/jenkins/build_cluster/config.xml b/jenkins/build_cluster/config.xml index 0e77719..0c7ca3e 100644 --- a/jenkins/build_cluster/config.xml +++ b/jenkins/build_cluster/config.xml @@ -81,6 +81,17 @@ Required! Can be direct URL or URL to torrent-file. Update fuel version to latest MU (7.0 and 8.0 only) or upgrade release 9.x (9.0 to 9.1) false + + UPDATE_TO + Do not USE! Non production ready! + + + latest_released_mu + 9.2 + 9.1 + + + NETWORK_TYPE Choose a network type or leave it empty @@ -116,7 +127,9 @@ Required! Can be direct URL or URL to torrent-file. SSH_PUB_KEYS Add you keys to default value of job - + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8PWq76FFIKmxPGMdWErBMEFwtb2NZYeTxu1lMVacC1QemMMaoybNisvD+L4JyaiC+zFQzlHlCDgicCgw7TXkgFtoyttLMxbshcu+wx0uG8bMlQTZ5DZ7ywwBU7+OysSgBEvju1dlMF7wOKDcYLfJxbYoUYvq+tgVbBWBFm8q+PrMvZZGfPX5M6m/sdpiFc3/f1K6Hh+DeV+9hFx/2vES62Qwv76zzr7oGS3tAi2RyBFt6BWrJx9vqa25AAoqzRsHoj0+0iAi1reZQ3jvz3FIsfgVN+ymVv431X4Gr3H8+BMj56VpT5z8McXj9+o+qoK70YLrtg2z2IpSONOE7o3JX ac@achevychalov + +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDrV6q403BYodTCb8BCsWlkW6AHxvtCH5JxI9gUANsvbQd9n8fd16xqgXVecCRBJOS4PVauLNiQPMaj6ZuFeRZ8ZXvX498eNSNa5WhBbSwk0X/DqdK1LN/MStTAtL60JQV0yQSY+BghVJkREw4MJJBksyP0X+OG5AB+ijh/bjsabYr+EQNK+WJblrsRvNNCbjiWPcjzXVMxUrzphB09CYMwWFgx1An5jS7c1EGvXrzf0aK1KkadhGnXcjPACFaMGPYmu5HNgQcRnzNXDQU6PLGeyqNnZYZjHdQWZR88cQywznqzI8y9P4qSOTVStYoKLlYsdQFRTw8sJrRpPZupgSED astupnikov@astupnikov-srv Label of Slave diff --git a/jenkins/build_cluster/update_helper.sh b/jenkins/build_cluster/update_helper.sh index d1a6cd6..1a62883 100755 --- a/jenkins/build_cluster/update_helper.sh +++ b/jenkins/build_cluster/update_helper.sh @@ -53,13 +53,37 @@ upgrade_second_phase_8x (){ RUN_WITH_LOGGER "dockerctl start all" || return 1 } -upgrade_to_9x () { +upgrade_to_9_1 () { RUN_WITH_LOGGER yum clean all || return 1 RUN_WITH_LOGGER yum install python-cudet -y || return 1 RUN_WITH_LOGGER update-prepare prepare master || return 1 RUN_WITH_LOGGER update-prepare update master || return 1 } +upgrade_to_9_2 () { + RUN_WITH_LOGGER yum install -y http://mirror.fuel-infra.org/mos-repos/centos/mos9.0-centos7/9.2-updates/x86_64/Packages/mos-release-9.2-1.el7.x86_64.rpm || return 1 + RUN_WITH_LOGGER yum clean all || return 1 + RUN_WITH_LOGGER yum install -y mos-playbooks || return 1 + RUN_WITH_LOGGER cd /root/mos_playbooks/mos_mu/ || return 1 + RUN_WITH_LOGGER ansible-playbook playbooks/mos9_prepare_fuel.yml || return 1 + RUN_WITH_LOGGER ansible-playbook playbooks/update_fuel.yml -e '{"rebuild_bootstrap":false}' || return 1 + RUN_WITH_LOGGER ansible-playbook playbooks/mos9_fuel_upgrade_kernel_4.4.yml || return 1 +} + +upgrade_to_9x () { + case $target_version in + latest_released_mu|9.2) + upgrade_to_9_2 + ;; + 9.1) + upgrade-to_9_1 + ;; + *) + crap "error: Have no idea about target version $target_version for $version" + ;; + esac +} + crap () { echo $1 >&2 exit ${2:-1} @@ -154,6 +178,8 @@ esac # For some of the upgrade procedures we have to split upgrade on two phase with reboot between. phase=${1:-"second"} +target_version=${2} + case $phase in first|second|reboot) action="${phase}_phase" -- 2.45.2