Make possible to start leap from K
This change: - discovers the current running version to know what to leap from, because we can't assume Juno only. At the same time it introduces a human verification of the source branch. - removes the useless "-v" of the runs that produced an undesirable output, making the interface less "user friendly". Change-Id: I04e4780bf5f58638addbd992eab7152f288532ae Co-Authored-By: Jean-Philippe Evrard <jean-philippe@evrard.me>
This commit is contained in:
parent
f0a94da4d3
commit
ee93901d05
@ -1,13 +1,13 @@
|
|||||||
# OpenStack-Ansible leap upgrade
|
# OpenStack-Ansible leap upgrade
|
||||||
|
|
||||||
## Jump upgrade from OpenStack Juno to Newton using OpenStack-Ansible
|
## Jump upgrade using OpenStack-Ansible for Ubuntu 14.04
|
||||||
|
|
||||||
==**This currently a POC**==
|
==**This currently a POC**==
|
||||||
|
|
||||||
### Uses
|
### Uses
|
||||||
|
|
||||||
This utility can be used to upgrade any OpenStack-Ansible deployment running
|
This utility can be used to upgrade any OpenStack-Ansible deployment running
|
||||||
Juno to the latest Newton release. The process will upgrade the OSA system
|
Juno / Kilo to the Newton release 14.2.3. The process will upgrade the system
|
||||||
components, sync the database through the various releases, and then deploy
|
components, sync the database through the various releases, and then deploy
|
||||||
OSA using the Newton release. While this method will help a deployment skip
|
OSA using the Newton release. While this method will help a deployment skip
|
||||||
several releases deployers should be aware that skipping releases is not
|
several releases deployers should be aware that skipping releases is not
|
||||||
@ -19,7 +19,7 @@ the shortest possible time while maintaining data-integrity.
|
|||||||
|
|
||||||
#### Requirements
|
#### Requirements
|
||||||
|
|
||||||
* **You must** have a Juno based OpenStack cloud as deployed by
|
* **You must** have a Juno/Kilo based OpenStack cloud as deployed by
|
||||||
OpenStack-Ansible.
|
OpenStack-Ansible.
|
||||||
* If you are running cinder-volume with LVM in an LXC container **you must**
|
* If you are running cinder-volume with LVM in an LXC container **you must**
|
||||||
migrate the cinder-volume service to the physical host.
|
migrate the cinder-volume service to the physical host.
|
||||||
@ -61,7 +61,7 @@ Newton.
|
|||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
### Setting up a Test environment.
|
### Example leap with a multi-node juno environment.
|
||||||
|
|
||||||
Testing on a multi-node environment can be accomplished using the
|
Testing on a multi-node environment can be accomplished using the
|
||||||
https://github.com/openstack/openstack-ansible-ops/tree/master/multi-node-aio
|
https://github.com/openstack/openstack-ansible-ops/tree/master/multi-node-aio
|
||||||
@ -76,7 +76,7 @@ very well for development. To run the deployment execute the following commands
|
|||||||
* Start the deployment w/ ubuntu 14.04.2 to ensure the deployment version is
|
* Start the deployment w/ ubuntu 14.04.2 to ensure the deployment version is
|
||||||
limited in terms of package availability.
|
limited in terms of package availability.
|
||||||
|
|
||||||
#### Process
|
#### Setup a multi-node AIO
|
||||||
|
|
||||||
Clone the ops tooling and change directory to the multi-node-aio tooling
|
Clone the ops tooling and change directory to the multi-node-aio tooling
|
||||||
|
|
||||||
@ -94,6 +94,8 @@ setup-virsh-net.sh
|
|||||||
deploy-vms.sh
|
deploy-vms.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Deploy an example Juno config
|
||||||
|
|
||||||
After the environment has been deployed clone the RPC configurations which support Juno
|
After the environment has been deployed clone the RPC configurations which support Juno
|
||||||
based clouds.
|
based clouds.
|
||||||
|
|
||||||
@ -101,6 +103,8 @@ based clouds.
|
|||||||
git clone https://github.com/os-cloud/leapfrog-juno-config /etc/rpc_deploy
|
git clone https://github.com/os-cloud/leapfrog-juno-config /etc/rpc_deploy
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Deploy Juno
|
||||||
|
|
||||||
Now clone the Juno playbooks into place.
|
Now clone the Juno playbooks into place.
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
@ -118,6 +122,8 @@ openstack-ansible playbooks/haproxy-install.yml
|
|||||||
openstack-ansible playbooks/setup-everything.yml
|
openstack-ansible playbooks/setup-everything.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Test your Juno cloud
|
||||||
|
|
||||||
To test the cloud's functionality you can execute the OpenStack resource test script located in the scripts directory
|
To test the cloud's functionality you can execute the OpenStack resource test script located in the scripts directory
|
||||||
of the playbooks cloned earlier.
|
of the playbooks cloned earlier.
|
||||||
|
|
||||||
@ -143,3 +149,7 @@ Once the cloud is operational it's recommended that images be created so that th
|
|||||||
reverted to a previous state should there ever be a need. See
|
reverted to a previous state should there ever be a need. See
|
||||||
https://github.com/openstack/openstack-ansible-ops/tree/master/multi-node-aio#snapshotting-an-environment-before-major-testing
|
https://github.com/openstack/openstack-ansible-ops/tree/master/multi-node-aio#snapshotting-an-environment-before-major-testing
|
||||||
for more on creating snapshots.
|
for more on creating snapshots.
|
||||||
|
|
||||||
|
#### Run the leapfrog
|
||||||
|
|
||||||
|
See the "Process" part on the top of the page
|
||||||
|
@ -27,24 +27,38 @@ function failure {
|
|||||||
echo -e '[!]'"\t\033[1;31m${1}\033[0m"
|
echo -e '[!]'"\t\033[1;31m${1}\033[0m"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function debug {
|
||||||
|
if [[ $DEBUG == "TRUE" ]]; then
|
||||||
|
echo -e "${1}" >> $DEBUG_PATH
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function tag_leap_success {
|
function tag_leap_success {
|
||||||
notice "LEAP ${1} success"
|
notice "LEAP ${1} success"
|
||||||
touch "/opt/leap42/openstack-ansible-${1}.leap"
|
touch "/opt/leap42/openstack-ansible-${1}.leap"
|
||||||
|
debug "LEAP ${1} marked as success"
|
||||||
}
|
}
|
||||||
|
|
||||||
function run_lock {
|
function run_lock {
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
run_item="${RUN_TASKS[$1]}"
|
run_item="${RUN_TASKS[$1]}"
|
||||||
file_part="$(echo ${run_item} | sed 's/\s/-/g')"
|
file_part="$(echo ${run_item} | cut -f 1 -d ' ' | xargs basename)"
|
||||||
|
other_args="$(echo ${run_item} | cut -f 2- -d ' ' -s | sed 's/[^[:alnum:]_]/-/g')"
|
||||||
|
debug "Run_lock on $run_item"
|
||||||
|
|
||||||
if [ ! -d "/etc/openstack_deploy/upgrade-leap" ]; then
|
if [ ! -d "/etc/openstack_deploy/upgrade-leap" ]; then
|
||||||
mkdir -p "/etc/openstack_deploy/upgrade-leap"
|
mkdir -p "/etc/openstack_deploy/upgrade-leap"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
upgrade_marker_file=$(basename "${file_part}")
|
upgrade_marker_file=${file_part}${other_args}
|
||||||
upgrade_marker="/etc/openstack_deploy/upgrade-leap/$upgrade_marker_file.complete"
|
upgrade_marker="/etc/openstack_deploy/upgrade-leap/$upgrade_marker_file.complete"
|
||||||
|
debug "Upgrade marker is $upgrade_marker"
|
||||||
|
|
||||||
if [ ! -f "$upgrade_marker" ];then
|
if [ ! -f "$upgrade_marker" ];then
|
||||||
|
debug "Upgrade marker file not found for this run item."
|
||||||
|
debug "Will run openstack-ansible $2"
|
||||||
|
|
||||||
# note(sigmavirus24): use eval so that we properly turn strings like
|
# note(sigmavirus24): use eval so that we properly turn strings like
|
||||||
# "/tmp/fix_container_interfaces.yml || true"
|
# "/tmp/fix_container_interfaces.yml || true"
|
||||||
# into a command, otherwise we'll get an error that there's no playbook
|
# into a command, otherwise we'll get an error that there's no playbook
|
||||||
@ -54,8 +68,8 @@ function run_lock {
|
|||||||
notice "Ran: $run_item"
|
notice "Ran: $run_item"
|
||||||
|
|
||||||
if [ "$playbook_status" == "0" ];then
|
if [ "$playbook_status" == "0" ];then
|
||||||
RUN_TASKS=("${RUN_TASKS[@]/$run_item}")
|
|
||||||
touch "${upgrade_marker}"
|
touch "${upgrade_marker}"
|
||||||
|
unset RUN_TASKS[$1]
|
||||||
notice "$run_item has been marked as success at ${upgrade_marker}"
|
notice "$run_item has been marked as success at ${upgrade_marker}"
|
||||||
else
|
else
|
||||||
FAILURES_LIST=$(seq $1 $((${#RUN_TASKS[@]} - 1)))
|
FAILURES_LIST=$(seq $1 $((${#RUN_TASKS[@]} - 1)))
|
||||||
@ -77,6 +91,7 @@ function run_lock {
|
|||||||
exit 99
|
exit 99
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
debug "Upgrade marker file found for this run item."
|
||||||
RUN_TASKS=("${RUN_TASKS[@]/$run_item.*}")
|
RUN_TASKS=("${RUN_TASKS[@]/$run_item.*}")
|
||||||
fi
|
fi
|
||||||
set -e
|
set -e
|
||||||
@ -113,13 +128,92 @@ function system_bootstrap {
|
|||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validate_upgrade_input {
|
||||||
|
|
||||||
|
echo
|
||||||
|
warning "Please enter the source series to upgrade from."
|
||||||
|
notice "JUNO, KILO or LIBERTY"
|
||||||
|
read -p 'Enter "JUNO", "KILO", or "LIBERTY" to continue: ' UPGRADE_FROM
|
||||||
|
export INPUT_UPGRADE_FROM=${UPGRADE_FROM}
|
||||||
|
|
||||||
|
if [[ ${INPUT_UPGRADE_FROM} == ${CODE_UPGRADE_FROM} ]]; then
|
||||||
|
notice "Running LEAP Upgrade from ${CODE_UPGRADE_FROM} to NEWTON"
|
||||||
|
else
|
||||||
|
notice "Asking to upgrade a ${INPUT_UPGRADE_FROM}, but code is to ${CODE_UPGRADE_FROM}"
|
||||||
|
read -p 'Are you sure? Enter "YES" to continue:' RUSURE
|
||||||
|
if [[ "${RUSURE}" != "YES" ]]; then
|
||||||
|
notice "Quitting..."
|
||||||
|
exit 99
|
||||||
|
fi
|
||||||
|
# We should let the user decide if he passes through the checks
|
||||||
|
export CODE_UPGRADE_FROM=${INPUT_UPGRADE_FROM}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function discover_code_version {
|
||||||
|
if [[ ! -f "/etc/openstack-release" ]]; then
|
||||||
|
export CODE_UPGRADE_FROM="JUNO"
|
||||||
|
notice "You seem to be running Juno"
|
||||||
|
else
|
||||||
|
source /etc/openstack-release
|
||||||
|
case "${DISTRIB_RELEASE%%.*}" in
|
||||||
|
'11')
|
||||||
|
export CODE_UPGRADE_FROM="KILO"
|
||||||
|
notice "You seem to be running Kilo"
|
||||||
|
;;
|
||||||
|
'12')
|
||||||
|
export CODE_UPGRADE_FROM="LIBERTY"
|
||||||
|
notice "You seem to be running Liberty"
|
||||||
|
;;
|
||||||
|
'13')
|
||||||
|
export CODE_UPGRADE_FROM="MITAKA"
|
||||||
|
notice "You seem to be running Mitaka"
|
||||||
|
;;
|
||||||
|
'14')
|
||||||
|
export CODE_UPGRADE_FROM="NEWTON"
|
||||||
|
notice "You seem to be running Newton"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_upgrade_vars {
|
||||||
|
notice "Setting up vars for the LEAP"
|
||||||
|
case "${CODE_UPGRADE_FROM}" in
|
||||||
|
JUNO)
|
||||||
|
export RELEASE="${JUNO_RELEASE}"
|
||||||
|
export UPGRADES_TO_TODOLIST="KILO LIBERTY MITAKA NEWTON"
|
||||||
|
export ANSIBLE_INVENTORY="/opt/leap42/openstack-ansible-${RELEASE}/rpc_deployment/inventory"
|
||||||
|
export CONFIG_DIR="/etc/rpc_deploy"
|
||||||
|
;;
|
||||||
|
KILO)
|
||||||
|
export RELEASE="${KILO_RELEASE}"
|
||||||
|
export UPGRADES_TO_TODOLIST="LIBERTY MITAKA NEWTON"
|
||||||
|
export ANSIBLE_INVENTORY="/opt/leap42/openstack-ansible-${RELEASE}/playbooks/inventory"
|
||||||
|
export CONFIG_DIR="/etc/openstack_deploy"
|
||||||
|
;;
|
||||||
|
LIBERTY)
|
||||||
|
export RELEASE="${LIBERTY_RELEASE}"
|
||||||
|
export UPGRADES_TO_TODOLIST="MITAKA NEWTON"
|
||||||
|
export ANSIBLE_INVENTORY="/opt/leap42/openstack-ansible-${RELEASE}/playbooks/inventory"
|
||||||
|
export CONFIG_DIR="/etc/openstack_deploy"
|
||||||
|
;;
|
||||||
|
MITAKA)
|
||||||
|
export RELEASE="${MITAKA_RELEASE}"
|
||||||
|
export UPGRADES_TO_TODOLIST="NEWTON"
|
||||||
|
export ANSIBLE_INVENTORY="/opt/leap42/openstack-ansible-${RELEASE}/playbooks/inventory"
|
||||||
|
export CONFIG_DIR="/etc/openstack_deploy"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
function pre_flight {
|
function pre_flight {
|
||||||
## Pre-flight Check ----------------------------------------------------------
|
## Pre-flight Check ----------------------------------------------------------
|
||||||
# Clear the screen and make sure the user understands whats happening.
|
# Clear the screen and make sure the user understands whats happening.
|
||||||
clear
|
clear
|
||||||
|
|
||||||
# Notify the user.
|
# Notify the user.
|
||||||
warning "This script will perform a LEAP upgrade from Juno to Newton."
|
warning "This script will perform a LEAP upgrade to Newton."
|
||||||
warning "Once you start the upgrade there's no going back."
|
warning "Once you start the upgrade there's no going back."
|
||||||
warning "**Note, this is an OFFLINE upgrade**"
|
warning "**Note, this is an OFFLINE upgrade**"
|
||||||
notice "If you want to run the upgrade in parts please exit this script to do so."
|
notice "If you want to run the upgrade in parts please exit this script to do so."
|
||||||
@ -130,25 +224,23 @@ function pre_flight {
|
|||||||
if [ "${UPGRADE}" == "YES" ]; then
|
if [ "${UPGRADE}" == "YES" ]; then
|
||||||
notice "Running LEAP Upgrade"
|
notice "Running LEAP Upgrade"
|
||||||
else
|
else
|
||||||
|
notice "Exiting, input wasn't YES"
|
||||||
exit 99
|
exit 99
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p /opt/leap42/venvs
|
discover_code_version
|
||||||
|
|
||||||
pushd /opt/leap42
|
if [ "${VALIDATE_UPGRADE_INPUT}" == "TRUE" ]; then
|
||||||
# Using this lookup plugin because it allows us to compile exact service releaes and build a complete venv from it
|
validate_upgrade_input
|
||||||
wget https://raw.githubusercontent.com/openstack/openstack-ansible-plugins/e069d558b3d6ae8fc505d406b13a3fb66201a9c7/lookup/py_pkgs.py -O py_pkgs.py
|
fi
|
||||||
chmod +x py_pkgs.py
|
|
||||||
popd
|
set_upgrade_vars
|
||||||
|
|
||||||
|
mkdir -p /opt/leap42/venvs
|
||||||
|
|
||||||
# If the lxc backend store was not set halt and instruct the user to set it. In Juno we did more to detect the backend storage
|
# If the lxc backend store was not set halt and instruct the user to set it. In Juno we did more to detect the backend storage
|
||||||
# size than we do in later releases. While the auto-detection should still work it's best to have the deployer set the value
|
# size than we do in later releases. While the auto-detection should still work it's best to have the deployer set the value
|
||||||
# desired before moving forward.
|
# desired before moving forward.
|
||||||
if [[ -d "/etc/rpc_deploy" ]]; then
|
|
||||||
CONFIG_DIR="/etc/rpc_deploy"
|
|
||||||
else
|
|
||||||
CONFIG_DIR="/etc/openstack_deploy"
|
|
||||||
fi
|
|
||||||
if ! grep -qwrn "^lxc_container_backing_store" $CONFIG_DIR; then
|
if ! grep -qwrn "^lxc_container_backing_store" $CONFIG_DIR; then
|
||||||
failure "ERROR: 'lxc_container_backing_store' is unset leading to an ambiguous container backend store."
|
failure "ERROR: 'lxc_container_backing_store' is unset leading to an ambiguous container backend store."
|
||||||
failure "Before continuing please set the 'lxc_container_backing_store' in your user_variables.yml file."
|
failure "Before continuing please set the 'lxc_container_backing_store' in your user_variables.yml file."
|
||||||
@ -156,11 +248,25 @@ function pre_flight {
|
|||||||
exit 99
|
exit 99
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! grep -qwrn "^neutron_legacy_ha_tool_enabled" $CONFIG_DIR; then
|
||||||
|
failure "ERROR: 'neutron_legacy_ha_tool_enabled' is unset leading to an ambiguous l3ha handling."
|
||||||
|
failure "Before continuing please set the 'neutron_legacy_ha_tool_enabled' in your user_variables.yml file."
|
||||||
|
exit 99
|
||||||
|
fi
|
||||||
|
|
||||||
# Install liberasurecode-dev which will be used in the venv creation process
|
# Install liberasurecode-dev which will be used in the venv creation process
|
||||||
if ! grep -n ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -qw "backports"; then
|
if ! grep -n ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -qw "backports"; then
|
||||||
failure "The trusty backports repo has not been enabled on this host."
|
failure "The trusty backports repo has not been enabled on this host."
|
||||||
exit 99
|
exit 99
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Don't run this over and over again if the variables above are not set!
|
||||||
|
pushd /opt/leap42
|
||||||
|
# Using this lookup plugin because it allows us to compile exact service releaes and build a complete venv from it
|
||||||
|
wget https://raw.githubusercontent.com/openstack/openstack-ansible-plugins/e069d558b3d6ae8fc505d406b13a3fb66201a9c7/lookup/py_pkgs.py -O py_pkgs.py
|
||||||
|
chmod +x py_pkgs.py
|
||||||
|
popd
|
||||||
|
|
||||||
apt-get update > /dev/null
|
apt-get update > /dev/null
|
||||||
apt-get -y install liberasurecode-dev > /dev/null
|
apt-get -y install liberasurecode-dev > /dev/null
|
||||||
|
|
||||||
@ -203,6 +309,7 @@ function run_items {
|
|||||||
pushd ${PB_DIR}
|
pushd ${PB_DIR}
|
||||||
# Run the tasks in order
|
# Run the tasks in order
|
||||||
for item in ${!RUN_TASKS[@]}; do
|
for item in ${!RUN_TASKS[@]}; do
|
||||||
|
debug "Run_items of ${item}: ${RUN_TASKS[$item]}. Starting run_lock"
|
||||||
run_lock $item "${RUN_TASKS[$item]}"
|
run_lock $item "${RUN_TASKS[$item]}"
|
||||||
done
|
done
|
||||||
popd
|
popd
|
||||||
|
@ -14,12 +14,16 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
## Generic debug var. This will log actions to /tmp/run_debug
|
||||||
|
export DEBUG="${DEBUG:-TRUE}"
|
||||||
|
export DEBUG_PATH="${DEBUG_PATH:-/tmp/run_debug}"
|
||||||
|
|
||||||
## Script Vars ---------------------------------------------------------------
|
## Script Vars ---------------------------------------------------------------
|
||||||
export JUNO_RELEASE="${JUNO_RELEASE:-10.1.14}"
|
export JUNO_RELEASE="${JUNO_RELEASE:-10.1.14}"
|
||||||
export KILO_RELEASE="${KILO_RELEASE:-11.2.17}"
|
export KILO_RELEASE="${KILO_RELEASE:-11.2.17}"
|
||||||
export LIBERTY_RELEASE="${LIBERTY_RELEASE:-12.2.8}"
|
export LIBERTY_RELEASE="${LIBERTY_RELEASE:-12.2.8}"
|
||||||
export MITAKA_RELEASE="${MITAKA_RELEASE:-13.3.11}"
|
export MITAKA_RELEASE="${MITAKA_RELEASE:-13.3.11}"
|
||||||
export NEWTON_RELEASE="${NEWTON_RELEASE:-d47e29b7d8a385773acadb825e37c82d42b3ec27}" # commit used due to packaging bug caused by setuptools
|
export NEWTON_RELEASE="${NEWTON_RELEASE:-14.2.3}" # commit used due to packaging bug caused by setuptools
|
||||||
|
|
||||||
## Environment Vars ------------------------------------------------------------------
|
## Environment Vars ------------------------------------------------------------------
|
||||||
export MAIN_PATH="${MAIN_PATH:-/opt/openstack-ansible}"
|
export MAIN_PATH="${MAIN_PATH:-/opt/openstack-ansible}"
|
||||||
@ -31,3 +35,7 @@ export UPGRADE_UTILS="${UPGRADE_UTILS:-${SYSTEM_PATH}/upgrade-utilities}"
|
|||||||
# this URL will be used to download the release built VENVS in the following format.
|
# this URL will be used to download the release built VENVS in the following format.
|
||||||
# ${VENV_URL}/openstack-ansible-RELEASE_VERSION.tgz
|
# ${VENV_URL}/openstack-ansible-RELEASE_VERSION.tgz
|
||||||
export VENV_URL="${VENV_URL:-https://mirror.rackspace.com/rackspaceprivatecloud/venvs/leap-bundles}"
|
export VENV_URL="${VENV_URL:-https://mirror.rackspace.com/rackspaceprivatecloud/venvs/leap-bundles}"
|
||||||
|
|
||||||
|
export VALIDATE_UPGRADE_INPUT="${VALIDATE_UPGRADE_INPUT:-TRUE}"
|
||||||
|
export UPGRADES_TO_TODOLIST="${UPGRADES_TO_TODOLIST:-''}"
|
||||||
|
export CODE_UPGRADE_FROM=""
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
# root@HOSTNAME:/opt/openstack-ansible# echo "YES" | bash scripts/run-upgrade.sh
|
# root@HOSTNAME:/opt/openstack-ansible# echo "YES" | bash scripts/run-upgrade.sh
|
||||||
|
|
||||||
## Shell Opts ----------------------------------------------------------------
|
## Shell Opts ----------------------------------------------------------------
|
||||||
set -e -u -v
|
set -e -u
|
||||||
|
|
||||||
## Main ----------------------------------------------------------------------
|
## Main ----------------------------------------------------------------------
|
||||||
source lib/vars.sh
|
source lib/vars.sh
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
# root@HOSTNAME:/opt/openstack-ansible# echo "YES" | bash scripts/run-upgrade.sh
|
# root@HOSTNAME:/opt/openstack-ansible# echo "YES" | bash scripts/run-upgrade.sh
|
||||||
|
|
||||||
## Shell Opts ----------------------------------------------------------------
|
## Shell Opts ----------------------------------------------------------------
|
||||||
set -e -u -v
|
set -e -u
|
||||||
|
|
||||||
## Main ----------------------------------------------------------------------
|
## Main ----------------------------------------------------------------------
|
||||||
source lib/vars.sh
|
source lib/vars.sh
|
||||||
@ -60,17 +60,10 @@ if [[ ! -f "/opt/leap42/openstack-ansible-${NEWTON_RELEASE}-prep.leap" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
RUN_TASKS=()
|
RUN_TASKS=()
|
||||||
|
|
||||||
RUN_TASKS+=("${UPGRADE_UTILS}/cinder-volume-container-lvm-check.yml")
|
RUN_TASKS+=("${UPGRADE_UTILS}/cinder-volume-container-lvm-check.yml")
|
||||||
RUN_TASKS+=("${UPGRADE_UTILS}/db-backup.yml")
|
RUN_TASKS+=("${UPGRADE_UTILS}/db-backup.yml")
|
||||||
|
|
||||||
if [[ -d "/etc/rpc_deploy" ]]; then
|
|
||||||
RELEASE="${JUNO_RELEASE}"
|
|
||||||
export ANSIBLE_INVENTORY="/opt/leap42/openstack-ansible-${RELEASE}/rpc_deployment/inventory"
|
|
||||||
else
|
|
||||||
RELEASE="${NEWTON_RELEASE}"
|
|
||||||
export ANSIBLE_INVENTORY="/opt/leap42/openstack-ansible-${RELEASE}/playbooks/inventory"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# temp upgrade ansible is used to ensure 1.9.x compat.
|
# temp upgrade ansible is used to ensure 1.9.x compat.
|
||||||
PS1="\\u@\h \\W]\\$" . "/opt/ansible-runtime/bin/activate"
|
PS1="\\u@\h \\W]\\$" . "/opt/ansible-runtime/bin/activate"
|
||||||
run_items "/opt/leap42/openstack-ansible-${RELEASE}"
|
run_items "/opt/leap42/openstack-ansible-${RELEASE}"
|
||||||
|
@ -18,33 +18,43 @@
|
|||||||
# root@HOSTNAME:/opt/openstack-ansible# echo "YES" | bash scripts/run-upgrade.sh
|
# root@HOSTNAME:/opt/openstack-ansible# echo "YES" | bash scripts/run-upgrade.sh
|
||||||
|
|
||||||
## Shell Opts ----------------------------------------------------------------
|
## Shell Opts ----------------------------------------------------------------
|
||||||
set -e -u -v
|
set -e -u
|
||||||
|
|
||||||
## Main ----------------------------------------------------------------------
|
## Main ----------------------------------------------------------------------
|
||||||
source lib/vars.sh
|
source lib/vars.sh
|
||||||
source lib/functions.sh
|
source lib/functions.sh
|
||||||
|
|
||||||
### Run the redeploy tasks
|
### Run the redeploy tasks
|
||||||
# Forget about the old Juno neutron agent container in inventory.
|
# Forget about the old neutron agent container in inventory.
|
||||||
# This is done to maximize uptime by leaving the old systems in
|
# This is done to maximize uptime by leaving the old systems in
|
||||||
# place while the redeployment work is going on.
|
# place while the redeployment work is going on.
|
||||||
SCRIPTS_PATH="/opt/leap42/openstack-ansible-${NEWTON_RELEASE}/scripts" \
|
# TODO(evrardjp): Move this to a playbook, this way it will follow the
|
||||||
MAIN_PATH="/opt/leap42/openstack-ansible-${NEWTON_RELEASE}" \
|
# RUN_TASKS model
|
||||||
${UPGRADE_UTILS}/neutron-container-forget.sh
|
|
||||||
|
if [ ! -f /etc/openstack_deploy/upgrade-leap/neutron-container-forget.complete ];then
|
||||||
|
SCRIPTS_PATH="/opt/leap42/openstack-ansible-${NEWTON_RELEASE}/scripts" \
|
||||||
|
MAIN_PATH="/opt/leap42/openstack-ansible-${NEWTON_RELEASE}" \
|
||||||
|
${UPGRADE_UTILS}/neutron-container-forget.sh
|
||||||
|
touch /etc/openstack_deploy/upgrade-leap/neutron-container-forget.complete
|
||||||
|
fi
|
||||||
|
|
||||||
link_release "/opt/leap42/openstack-ansible-${NEWTON_RELEASE}"
|
link_release "/opt/leap42/openstack-ansible-${NEWTON_RELEASE}"
|
||||||
RUN_TASKS=()
|
RUN_TASKS=()
|
||||||
|
# Ensure the same pip everywhere, even if requirement met or above
|
||||||
RUN_TASKS+=("${UPGRADE_UTILS}/pip-unify.yml -e release_version=\"${NEWTON_RELEASE}\"")
|
RUN_TASKS+=("${UPGRADE_UTILS}/pip-unify.yml -e release_version=\"${NEWTON_RELEASE}\"")
|
||||||
|
|
||||||
RUN_TASKS+=("${UPGRADE_UTILS}/db-stop.yml")
|
RUN_TASKS+=("${UPGRADE_UTILS}/db-stop.yml")
|
||||||
RUN_TASKS+=("${UPGRADE_UTILS}/ansible_fact_cleanup.yml")
|
RUN_TASKS+=("${UPGRADE_UTILS}/ansible_fact_cleanup.yml")
|
||||||
|
# Physical host cleanup
|
||||||
RUN_TASKS+=("${UPGRADE_UTILS}/destroy-old-containers.yml")
|
RUN_TASKS+=("${UPGRADE_UTILS}/destroy-old-containers.yml")
|
||||||
|
# Permissions for qemu save, because physical host cleanup
|
||||||
RUN_TASKS+=("${UPGRADE_UTILS}/nova-libvirt-fix.yml")
|
RUN_TASKS+=("${UPGRADE_UTILS}/nova-libvirt-fix.yml")
|
||||||
|
|
||||||
RUN_TASKS+=("lxc-hosts-setup.yml")
|
RUN_TASKS+=("lxc-hosts-setup.yml")
|
||||||
RUN_TASKS+=("lxc-containers-create.yml")
|
RUN_TASKS+=("lxc-containers-create.yml")
|
||||||
|
|
||||||
RUN_TASKS+=("setup-infrastructure.yml")
|
RUN_TASKS+=("setup-infrastructure.yml")
|
||||||
|
# MariaDB sync for major maria upgrades and cluster schema sync
|
||||||
RUN_TASKS+=("${UPGRADE_UTILS}/db-force-upgrade.yml")
|
RUN_TASKS+=("${UPGRADE_UTILS}/db-force-upgrade.yml")
|
||||||
|
|
||||||
RUN_TASKS+=("os-keystone-install.yml")
|
RUN_TASKS+=("os-keystone-install.yml")
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
# root@HOSTNAME:/opt/openstack-ansible# echo "YES" | bash scripts/run-upgrade.sh
|
# root@HOSTNAME:/opt/openstack-ansible# echo "YES" | bash scripts/run-upgrade.sh
|
||||||
|
|
||||||
## Shell Opts ----------------------------------------------------------------
|
## Shell Opts ----------------------------------------------------------------
|
||||||
set -e -u -v
|
set -e -u
|
||||||
|
|
||||||
## Main ----------------------------------------------------------------------
|
## Main ----------------------------------------------------------------------
|
||||||
source lib/vars.sh
|
source lib/vars.sh
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
args:
|
args:
|
||||||
executable: /bin/bash
|
executable: /bin/bash
|
||||||
|
|
||||||
|
# TODO: Improve l2 convergence too.
|
||||||
- name: Remove the reminent neutron agent containers
|
- name: Remove the reminent neutron agent containers
|
||||||
hosts: "neutron_agent[0]"
|
hosts: "neutron_agent[0]"
|
||||||
gather_facts: false
|
gather_facts: false
|
||||||
|
@ -76,6 +76,11 @@
|
|||||||
args:
|
args:
|
||||||
executable: /bin/bash
|
executable: /bin/bash
|
||||||
|
|
||||||
|
- name: apt-get install libssl-dev
|
||||||
|
apt:
|
||||||
|
name: libssl-dev
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
- name: Re-install pip packaging requirements
|
- name: Re-install pip packaging requirements
|
||||||
raw: |
|
raw: |
|
||||||
/usr/bin/python /opt/get-pip.py \
|
/usr/bin/python /opt/get-pip.py \
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
# root@HOSTNAME:/opt/openstack-ansible# echo "YES" | bash scripts/run-upgrade.sh
|
# root@HOSTNAME:/opt/openstack-ansible# echo "YES" | bash scripts/run-upgrade.sh
|
||||||
|
|
||||||
## Shell Opts ----------------------------------------------------------------
|
## Shell Opts ----------------------------------------------------------------
|
||||||
set -e -u -v
|
set -e -u
|
||||||
|
|
||||||
## Main ----------------------------------------------------------------------
|
## Main ----------------------------------------------------------------------
|
||||||
source lib/vars.sh
|
source lib/vars.sh
|
||||||
@ -28,8 +28,8 @@ source lib/functions.sh
|
|||||||
# Run tasks
|
# Run tasks
|
||||||
UPGRADE_SCRIPTS="${UPGRADE_UTILS}-kilo/scripts"
|
UPGRADE_SCRIPTS="${UPGRADE_UTILS}-kilo/scripts"
|
||||||
# If the kilo leap has been accomplished, skip.
|
# If the kilo leap has been accomplished, skip.
|
||||||
if [[ ! -f "/opt/leap42/openstack-ansible-${KILO_RELEASE}.leap" ]]; then
|
if [[ ! -f "/opt/leap42/openstack-ansible-${KILO_RELEASE}.leap" ]] && [[ "${UPGRADES_TO_TODOLIST}" =~ .*KILO.* ]]; then
|
||||||
notice 'Running kilo leap'
|
notice 'Leaping to Kilo'
|
||||||
link_release "/opt/leap42/openstack-ansible-${KILO_RELEASE}"
|
link_release "/opt/leap42/openstack-ansible-${KILO_RELEASE}"
|
||||||
pushd "/opt/leap42/openstack-ansible-${KILO_RELEASE}"
|
pushd "/opt/leap42/openstack-ansible-${KILO_RELEASE}"
|
||||||
if [[ -d "/etc/rpc_deploy" ]]; then
|
if [[ -d "/etc/rpc_deploy" ]]; then
|
||||||
@ -74,8 +74,8 @@ fi
|
|||||||
|
|
||||||
### Liberty System migration
|
### Liberty System migration
|
||||||
# Run tasks
|
# Run tasks
|
||||||
if [[ ! -f "/opt/leap42/openstack-ansible-${LIBERTY_RELEASE}.leap" ]]; then
|
if [[ ! -f "/opt/leap42/openstack-ansible-${LIBERTY_RELEASE}.leap" ]] && [[ "${UPGRADES_TO_TODOLIST}" =~ .*LIBERTY.* ]]; then
|
||||||
notice 'Running liberty leap'
|
notice 'Leaping to liberty'
|
||||||
link_release "/opt/leap42/openstack-ansible-${LIBERTY_RELEASE}"
|
link_release "/opt/leap42/openstack-ansible-${LIBERTY_RELEASE}"
|
||||||
UPGRADE_PLAYBOOKS="${UPGRADE_UTILS}-liberty/playbooks"
|
UPGRADE_PLAYBOOKS="${UPGRADE_UTILS}-liberty/playbooks"
|
||||||
RUN_TASKS=()
|
RUN_TASKS=()
|
||||||
@ -91,8 +91,8 @@ fi
|
|||||||
|
|
||||||
### Mitaka System migration
|
### Mitaka System migration
|
||||||
# Run tasks
|
# Run tasks
|
||||||
if [[ ! -f "/opt/leap42/openstack-ansible-${MITAKA_RELEASE}.leap" ]]; then
|
if [[ ! -f "/opt/leap42/openstack-ansible-${MITAKA_RELEASE}.leap" ]] && [[ "${UPGRADES_TO_TODOLIST}" =~ .*MITAKA.* ]]; then
|
||||||
notice 'Running mitaka leap'
|
notice 'Leaping to Mitaka'
|
||||||
link_release "/opt/leap42/openstack-ansible-${MITAKA_RELEASE}"
|
link_release "/opt/leap42/openstack-ansible-${MITAKA_RELEASE}"
|
||||||
UPGRADE_PLAYBOOKS="${UPGRADE_UTILS}-mitaka/playbooks"
|
UPGRADE_PLAYBOOKS="${UPGRADE_UTILS}-mitaka/playbooks"
|
||||||
RUN_TASKS=()
|
RUN_TASKS=()
|
||||||
@ -109,7 +109,7 @@ fi
|
|||||||
|
|
||||||
### Newton Deploy
|
### Newton Deploy
|
||||||
# Run tasks
|
# Run tasks
|
||||||
if [[ ! -f "/opt/leap42/openstack-ansible-${NEWTON_RELEASE}.leap" ]]; then
|
if [[ ! -f "/opt/leap42/openstack-ansible-${NEWTON_RELEASE}.leap" ]] && [[ "${UPGRADES_TO_TODOLIST}" =~ .*NEWTON* ]]; then
|
||||||
notice 'Running newton leap'
|
notice 'Running newton leap'
|
||||||
link_release "/opt/leap42/openstack-ansible-${NEWTON_RELEASE}"
|
link_release "/opt/leap42/openstack-ansible-${NEWTON_RELEASE}"
|
||||||
UPGRADE_PLAYBOOKS="${UPGRADE_UTILS}-newton/playbooks"
|
UPGRADE_PLAYBOOKS="${UPGRADE_UTILS}-newton/playbooks"
|
||||||
|
Loading…
Reference in New Issue
Block a user