diff options
Diffstat (limited to 'lib/overcloud-deploy-functions.sh')
-rwxr-xr-x | lib/overcloud-deploy-functions.sh | 56 |
1 files changed, 39 insertions, 17 deletions
diff --git a/lib/overcloud-deploy-functions.sh b/lib/overcloud-deploy-functions.sh index 4b592b46..980478cb 100755 --- a/lib/overcloud-deploy-functions.sh +++ b/lib/overcloud-deploy-functions.sh @@ -55,15 +55,15 @@ function overcloud_deploy { # Make sure the correct overcloud image is available - if [ ! -f $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 ]; then - echo "${red} $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 is required to execute your deployment." + if [ ! -f $IMAGES/overcloud-full-${SDN_IMAGE}.qcow2 ]; then + echo "${red} $IMAGES/overcloud-full-${SDN_IMAGE}.qcow2 is required to execute your deployment." echo "Please install the opnfv-apex package to provide this overcloud image for deployment.${reset}" exit 1 fi echo "Copying overcloud image to Undercloud" ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "rm -f overcloud-full.qcow2" - scp ${SSH_OPTIONS[@]} $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 "stack@$UNDERCLOUD":overcloud-full.qcow2 + scp ${SSH_OPTIONS[@]} $IMAGES/overcloud-full-${SDN_IMAGE}.qcow2 "stack@$UNDERCLOUD":overcloud-full.qcow2 # Install ovs-dpdk inside the overcloud image if it is enabled. if [[ "${deploy_options_array['dataplane']}" == 'ovs_dpdk' || "${deploy_options_array['dataplane']}" == 'fdio' ]]; then @@ -128,10 +128,22 @@ EOI fi # Set ODL version accordingly - if [[ "${deploy_options_array['sdn_controller']}" == 'opendaylight' && "${deploy_options_array['odl_version']}" == 'boron' ]]; then + if [[ "${deploy_options_array['sdn_controller']}" == 'opendaylight' && -n "${deploy_options_array['odl_version']}" ]]; then + case "${deploy_options_array['odl_version']}" in + beryllium) odl_version='' + ;; + boron) odl_version='boron' + ;; + carbon) odl_version='master' + ;; + *) echo -e "${red}Invalid ODL version ${deploy_options_array['odl_version']}. Please use 'carbon' or 'boron' values.${reset}" + exit 1 + ;; + esac + ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum -y remove opendaylight" \ - --run-command "yum -y install /root/boron/*" \ + --run-command "yum -y install /root/${odl_version}/*" \ -a overcloud-full.qcow2 EOI fi @@ -204,8 +216,10 @@ EOI DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml" fi - # make sure ceph is installed - DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml" + # check if ceph should be enabled + if [ "${deploy_options_array['ceph']}" == 'True' ]; then + DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml" + fi #DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml" DEPLOY_OPTIONS+=" -e network-environment.yaml" @@ -247,22 +261,22 @@ EOI DEPLOY_OPTIONS+=" -e virtual-environment.yaml" fi - DEPLOY_OPTIONS+=" -e opnfv-environment.yaml" + DEPLOY_OPTIONS+=" -e ${ENV_FILE}" echo -e "${blue}INFO: Deploy options set:\n${DEPLOY_OPTIONS}${reset}" ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI if [ "${deploy_options_array['tacker']}" == 'False' ]; then - sed -i '/EnableTacker:/c\ EnableTacker: false' opnfv-environment.yaml + sed -i '/EnableTacker:/c\ EnableTacker: false' ${ENV_FILE} fi # Create a key for use by nova for live migration echo "Creating nova SSH key for nova resize support" ssh-keygen -f nova_id_rsa -b 1024 -P "" public_key=\'\$(cat nova_id_rsa.pub | cut -d ' ' -f 2)\' -sed -i "s#replace_public_key:#key: \$public_key#g" opnfv-environment.yaml -python -c 'open("opnfv-environment-new.yaml", "w").write((open("opnfv-environment.yaml").read().replace("replace_private_key:", "key: \"" + "".join(open("nova_id_rsa").readlines()).replace("\\n","\\\n") + "\"")))' -mv -f opnfv-environment-new.yaml opnfv-environment.yaml +sed -i "s#replace_public_key:#key: \$public_key#g" ${ENV_FILE} +python -c 'open("opnfv-environment-new.yaml", "w").write((open("${ENV_FILE}").read().replace("replace_private_key:", "key: \"" + "".join(open("nova_id_rsa").readlines()).replace("\\n","\\\n") + "\"")))' +mv -f opnfv-environment-new.yaml ${ENV_FILE} source stackrc set -o errexit @@ -275,11 +289,19 @@ openstack overcloud image upload echo "Configuring undercloud and discovering nodes" openstack baremetal import --json instackenv.json -openstack baremetal configure boot + bash -x set_perf_images.sh ${performance_roles[@]} -#if [[ -z "$virtual" ]]; then -# openstack baremetal introspection bulk start -#fi +if [[ -z "$virtual" ]]; then + openstack baremetal introspection bulk start + if [[ -n "$root_disk_list" ]]; then + openstack baremetal configure boot --root-device=${root_disk_list} + else + openstack baremetal configure boot + fi +else + openstack baremetal configure boot +fi + echo "Configuring flavors" for flavor in baremetal control compute; do echo -e "${blue}INFO: Updating flavor: \${flavor}${reset}" @@ -300,7 +322,7 @@ for dns_server in ${dns_servers}; do dns_server_ext="\${dns_server_ext} --dns-nameserver \${dns_server}" done neutron subnet-update \$(neutron subnet-list | grep -Ev "id|tenant|external|storage" | grep -v \\\\-\\\\- | awk {'print \$2'}) \${dns_server_ext} -sed -i '/CloudDomain:/c\ CloudDomain: '${domain_name} opnfv-environment.yaml +sed -i '/CloudDomain:/c\ CloudDomain: '${domain_name} ${ENV_FILE} echo "Executing overcloud deployment, this should run for an extended period without output." sleep 60 #wait for Hypervisor stats to check-in to nova # save deploy command so it can be used for debugging |