X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=ci%2Fdeploy.sh;h=f1a807f7197baec13c2a2d230c2486f633e972e8;hb=55e3a45da905d5c23079d693d8dd0f7a5fd5c553;hp=57c637660ae9424f3111f5c3855849c307b81c78;hpb=771d5a58883f1fcb89507c503b1ef13524610a93;p=apex.git diff --git a/ci/deploy.sh b/ci/deploy.sh index 57c63766..f1a807f7 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -24,34 +24,38 @@ green=$(tput setaf 2 || echo "") interactive="FALSE" ping_site="8.8.8.8" -ntp_server="pool.ntp.org" -net_isolation_enabled="TRUE" +dnslookup_site="www.google.com" post_config="TRUE" debug="FALSE" +ovs_rpm_name=openvswitch-2.6.1-1.el7.centos.x86_64.rpm +ovs_kmod_rpm_name=openvswitch-kmod-2.6.1-1.el7.centos.x86_64.rpm + declare -i CNT declare UNDERCLOUD declare -A deploy_options_array declare -a performance_options declare -A NET_MAP +APEX_TMP_DIR=$(python3 -c "import tempfile; print(tempfile.mkdtemp())") SSH_OPTIONS=(-o StrictHostKeyChecking=no -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -o LogLevel=error) DEPLOY_OPTIONS="" -CONFIG=${CONFIG:-'/var/opt/opnfv'} -RESOURCES=${RESOURCES:-"$CONFIG/images"} -LIB=${LIB:-"$CONFIG/lib"} -OPNFV_NETWORK_TYPES="admin_network private_network public_network storage_network api_network" +BASE=${BASE:-'/var/opt/opnfv'} +IMAGES=${IMAGES:-"$BASE/images"} +LIB=${LIB:-"$BASE/lib"} +OPNFV_NETWORK_TYPES="admin tenant external storage api" +ENV_FILE="opnfv-environment.yaml" VM_CPUS=4 VM_RAM=8 -VM_COMPUTES=2 +VM_COMPUTES=1 # Netmap used to map networks to OVS bridge names -NET_MAP['admin_network']="br-admin" -NET_MAP['private_network']="br-private" -NET_MAP['public_network']="br-public" -NET_MAP['storage_network']="br-storage" -NET_MAP['api_network']="br-api" +NET_MAP['admin']="br-admin" +NET_MAP['tenant']="br-tenant" +NET_MAP['external']="br-external" +NET_MAP['storage']="br-storage" +NET_MAP['api']="br-api" ext_net_type="interface" ip_address_family=4 @@ -65,7 +69,6 @@ $LIB/undercloud-functions.sh $LIB/overcloud-deploy-functions.sh $LIB/post-install-functions.sh $LIB/utility-functions.sh -$LIB/installer/onos/onos_gw_mac_update.sh ) for lib_file in ${lib_files[@]}; do if ! source $lib_file; then @@ -76,17 +79,19 @@ done display_usage() { echo -e "Usage:\n$0 [arguments] \n" - echo -e " -d|--deploy-settings : Full path to deploy settings yaml file. Optional. Defaults to null" - echo -e " -i|--inventory : Full path to inventory yaml file. Required only for baremetal" - echo -e " -n|--net-settings : Full path to network settings file. Optional." - echo -e " -p|--ping-site : site to use to verify IP connectivity. Optional. Defaults to 8.8.8.8" - echo -e " -v|--virtual : Virtualize overcloud nodes instead of using baremetal." - echo -e " --flat : disable Network Isolation and use a single flat network for the underlay network." + echo -e " --deploy-settings | -d : Full path to deploy settings yaml file. Optional. Defaults to null" + echo -e " --inventory | -i : Full path to inventory yaml file. Required only for baremetal" + echo -e " --net-settings | -n : Full path to network settings file. Optional." + echo -e " --ping-site | -p : site to use to verify IP connectivity. Optional. Defaults to 8.8.8.8" + echo -e " --dnslookup-site : site to use to verify DNS resolution. Optional. Defaults to www.google.com" + echo -e " --virtual | -v : Virtualize overcloud nodes instead of using baremetal." echo -e " --no-post-config : disable Post Install configuration." echo -e " --debug : enable debug output." echo -e " --interactive : enable interactive deployment mode which requires user to confirm steps of deployment." echo -e " --virtual-cpus : Number of CPUs to use per Overcloud VM in a virtual deployment (defaults to 4)." - echo -e " --virtual-ram : Amount of RAM to use per Overcloud VM in GB (defaults to 8)." + echo -e " --virtual-computes : Number of Virtual Compute nodes to create and use during deployment (defaults to 1 for noha and 2 for ha)." + echo -e " --virtual-default-ram : Amount of default RAM to use per Overcloud VM in GB (defaults to 8)." + echo -e " --virtual-compute-ram : Amount of RAM to use per Overcloud Compute VM in GB (defaults to 8). Overrides --virtual-default-ram arg for computes" } ##translates the command line parameters into variables @@ -95,7 +100,6 @@ display_usage() { parse_cmdline() { echo -e "\n\n${blue}This script is used to deploy the Apex Installer and Provision OPNFV Target System${reset}\n\n" echo "Use -h to display help" - sleep 2 while [ "${1:0:1}" = "-" ] do @@ -118,21 +122,26 @@ parse_cmdline() { echo "Network Settings Configuration file: $2" shift 2 ;; + -e|--environment-file) + ENV_FILE=$2 + echo "Base OOO Environment file: $2" + shift 2 + ;; -p|--ping-site) ping_site=$2 echo "Using $2 as the ping site" shift 2 ;; + --dnslookup-site) + dnslookup_site=$2 + echo "Using $2 as the dnslookup site" + shift 2 + ;; -v|--virtual) virtual="TRUE" echo "Executing a Virtual Deployment" shift 1 ;; - --flat ) - net_isolation_enabled="FALSE" - echo "Underlay Network Isolation Disabled: using flat configuration" - shift 1 - ;; --no-post-config ) post_config="FALSE" echo "Post install configuration disabled" @@ -153,9 +162,9 @@ parse_cmdline() { echo "Number of CPUs per VM set to $VM_CPUS" shift 2 ;; - --virtual-ram ) + --virtual-default-ram ) VM_RAM=$2 - echo "Amount of RAM per VM set to $VM_RAM" + echo "Amount of Default RAM per VM set to $VM_RAM" shift 2 ;; --virtual-computes ) @@ -163,22 +172,37 @@ parse_cmdline() { echo "Virtual Compute nodes set to $VM_COMPUTES" shift 2 ;; + --virtual-compute-ram ) + VM_COMPUTE_RAM=$2 + echo "Virtual Compute RAM set to $VM_COMPUTE_RAM" + shift 2 + ;; *) display_usage exit 1 ;; esac done + sleep 2 - if [[ ! -z "$NETSETS" && "$net_isolation_enabled" == "FALSE" ]]; then - echo -e "${red}INFO: Single flat network requested. Only admin_network settings will be used!${reset}" - elif [[ -z "$NETSETS" ]]; then + if [[ -z "$NETSETS" ]]; then echo -e "${red}ERROR: You must provide a network_settings file with -n.${reset}" exit 1 fi - if [[ -n "$virtual" && -n "$INVENTORY_FILE" ]]; then - echo -e "${red}ERROR: You should not specify an inventory with virtual deployments${reset}" + # inventory file usage validation + if [[ -n "$virtual" ]]; then + if [[ -n "$INVENTORY_FILE" ]]; then + echo -e "${red}ERROR: You should not specify an inventory file with virtual deployments${reset}" + exit 1 + else + INVENTORY_FILE="$APEX_TMP_DIR/inventory-virt.yaml" + fi + elif [[ -z "$INVENTORY_FILE" ]]; then + echo -e "${red}ERROR: You must specify an inventory file for baremetal deployments! Exiting...${reset}" + exit 1 + elif [[ ! -f "$INVENTORY_FILE" ]]; then + echo -e "{$red}ERROR: Inventory File: ${INVENTORY_FILE} does not exist! Exiting...${reset}" exit 1 fi @@ -192,41 +216,31 @@ parse_cmdline() { exit 1 fi - if [[ ! -z "$INVENTORY_FILE" && ! -f "$INVENTORY_FILE" ]]; then - echo -e "{$red}ERROR: Inventory File: ${INVENTORY_FILE} does not exist! Exiting...${reset}" - exit 1 - fi - - if [[ -z "$virtual" && -z "$INVENTORY_FILE" ]]; then - echo -e "${red}ERROR: You must specify an inventory file for baremetal deployments! Exiting...${reset}" - exit 1 - fi - - if [[ "$net_isolation_enabled" == "FALSE" && "$post_config" == "TRUE" ]]; then - echo -e "${blue}INFO: Post Install Configuration will be skipped. It is not supported with --flat${reset}" - post_config="FALSE" - fi - } main() { parse_cmdline "$@" + if [ -n "$DEPLOY_SETTINGS_FILE" ]; then + echo -e "${blue}INFO: Parsing deploy settings file...${reset}" + parse_deploy_settings + fi echo -e "${blue}INFO: Parsing network settings file...${reset}" parse_network_settings if ! configure_deps; then echo -e "${red}Dependency Validation Failed, Exiting.${reset}" exit 1 fi - if [ -n "$DEPLOY_SETTINGS_FILE" ]; then - echo -e "${blue}INFO: Parsing deploy settings file...${reset}" - parse_deploy_settings + #Correct the time on the server prior to launching any VMs + if ntpdate $ntp_server; then + hwclock --systohc + else + echo "${blue}WARNING: ntpdate failed to update the time on the server. ${reset}" fi setup_undercloud_vm if [ "$virtual" == "TRUE" ]; then setup_virtual_baremetal $VM_CPUS $VM_RAM - elif [ -n "$INVENTORY_FILE" ]; then - parse_inventory_file fi + parse_inventory_file configure_undercloud overcloud_deploy if [ "$post_config" == "TRUE" ]; then @@ -237,14 +251,6 @@ main() { echo -e "${blue}INFO: Post Install Configuration Complete${reset}" fi fi - if [[ "${deploy_options_array['sdn_controller']}" == 'onos' ]]; then - if ! onos_update_gw_mac ${public_network_cidr} ${public_network_gateway}; then - echo -e "${red}ERROR:ONOS Post Install Configuration Failed, Exiting.${reset}" - exit 1 - else - echo -e "${blue}INFO: ONOS Post Install Configuration Complete${reset}" - fi - fi } main "$@"