|
| 1 | +#!/bin/bash |
| 2 | +SHOW_DEBUG_OUTPUT=false |
| 3 | + |
| 4 | +escape_quotes(){ |
| 5 | + echo $@ | sed s/'"'/'\\"'/g |
| 6 | +} |
| 7 | + |
| 8 | + |
| 9 | +curlwithcode() { |
| 10 | + code=0 |
| 11 | + # Run curl in a separate command, capturing output of -w "%{http_code}" into statuscode |
| 12 | + # and sending the content to a file with -o >(cat >/tmp/curl_body) |
| 13 | + statuscode=$(curl -w "%{http_code}" \ |
| 14 | + -o >(cat >/tmp/curl_body) \ |
| 15 | + "$@" |
| 16 | + ) || code="$?" |
| 17 | + |
| 18 | + body="$(cat /tmp/curl_body)" |
| 19 | + echo "{\"statusCode\": $statuscode," |
| 20 | + echo "\"exitCode\": $code," |
| 21 | + echo "\"body\": \"$(escape_quotes $body)\"}" |
| 22 | +} |
| 23 | + |
| 24 | +echoerr() { printf "\033[0;31m%s\n\033[0m" "$*" >&2; } |
| 25 | +echosuccess() { printf "\033[0;32m%s\n\033[0m" "$*" >&2; } |
| 26 | + |
| 27 | + |
| 28 | +# Read the bicep parameters |
| 29 | +parametersfilename='./03-test-vm.bicepparam' |
| 30 | + |
| 31 | +echo " " |
| 32 | +echo " " |
| 33 | +echo " TEST VM DEPLOYMENT " |
| 34 | +echo " " |
| 35 | +echo " " |
| 36 | +echo " " |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | +echo "Deploying the VM for testing" |
| 41 | +myIpAddress=`curl ifconfig.me 2> /dev/null` |
| 42 | + |
| 43 | +paramsJson=`bicep build-params $parametersfilename --stdout | jq -r ".parametersJson"` |
| 44 | + |
| 45 | +tmpJsonFilename='tmp.json' |
| 46 | +resourceGroupName=`echo $paramsJson | jq -r ".parameters.resourceGroupName.value"` |
| 47 | +(echo $paramsJson | sed "s/\$myIpAddress/$myIpAddress/") > $tmpJsonFilename |
| 48 | + |
| 49 | +# Deploy our infrastructure |
| 50 | +output=$(az deployment group create \ |
| 51 | + --name "test-vm-deploy-sh" \ |
| 52 | + --resource-group $resourceGroupName \ |
| 53 | + --template-file "templates/test-vm.bicep" \ |
| 54 | + --parameters @$tmpJsonFilename |
| 55 | +
|
| 56 | + ) |
| 57 | + |
| 58 | +rm $tmpJsonFilename |
| 59 | + |
| 60 | +cbsmanagementLbIp=`echo $output | jq -r '.properties.outputs.cbsmanagementLbIp.value'` |
| 61 | +cbsmanagementEndpointCT0=`echo $output | jq -r '.properties.outputs.cbsmanagementEndpointCT0.value'` |
| 62 | +cbsmanagementEndpointCT1=`echo $output | jq -r '.properties.outputs.cbsmanagementEndpointCT1.value'` |
| 63 | + |
| 64 | +cbsreplicationEndpointCT0=`echo $output | jq -r '.properties.outputs.cbsreplicationEndpointCT0.value'` |
| 65 | +cbsreplicationEndpointCT1=`echo $output | jq -r '.properties.outputs.cbsreplicationEndpointCT1.value'` |
| 66 | + |
| 67 | +cbsiSCSIEndpointCT0=`echo $output | jq -r '.properties.outputs.cbsiSCSIEndpointCT0.value'` |
| 68 | +cbsiSCSIEndpointCT1=`echo $output | jq -r '.properties.outputs.cbsiSCSIEndpointCT1.value'` |
| 69 | + |
| 70 | + |
| 71 | +echo "" |
| 72 | +echo "" |
| 73 | +echo "" |
| 74 | +echosuccess "The deployment of CBS managed application has been completed." |
| 75 | +echo "" |
| 76 | + |
| 77 | +echo " ******** Array parameters ********" |
| 78 | + |
| 79 | +echo "" |
| 80 | +echo "" |
| 81 | +echo " -------- Endpoints for management -------------" |
| 82 | +echo "| Load balancer IP | ${cbsmanagementLbIp}" |
| 83 | +echo "| CT0 IP address | ${cbsmanagementEndpointCT0}" |
| 84 | +echo "| CT1 IP address | ${cbsmanagementEndpointCT1}" |
| 85 | +echo " -----------------------------------------------" |
| 86 | + |
| 87 | +echo "" |
| 88 | +echo "" |
| 89 | +echo " --------- Endpoints for replication -----------" |
| 90 | +echo "| CT0 IP address | ${cbsreplicationEndpointCT0}" |
| 91 | +echo "| CT1 IP address | ${cbsreplicationEndpointCT1}" |
| 92 | +echo " -----------------------------------------------" |
| 93 | + |
| 94 | +echo "" |
| 95 | +echo "" |
| 96 | +echo " ------------ Endpoints for iSCSI --------------" |
| 97 | +echo "| CT0 IP address | ${cbsiSCSIEndpointCT0}" |
| 98 | +echo "| CT1 IP address | ${cbsiSCSIEndpointCT1}" |
| 99 | +echo " -----------------------------------------------" |
0 commit comments