github.com/gerbenjacobs/terraform@v0.9.5-0.20170630130047-e6ddd62583d8/examples/azure-vm-custom-image-new-storage-account/deploy.ci.sh (about) 1 #!/bin/bash 2 3 set -o errexit -o nounset 4 5 docker run --rm -it \ 6 -e ARM_CLIENT_ID \ 7 -e ARM_CLIENT_SECRET \ 8 -e ARM_SUBSCRIPTION_ID \ 9 -e ARM_TENANT_ID \ 10 -v $(pwd):/data \ 11 --workdir=/data \ 12 --entrypoint "/bin/sh" \ 13 hashicorp/terraform:light \ 14 -c "/bin/terraform get; \ 15 /bin/terraform validate; \ 16 /bin/terraform plan -out=out.tfplan \ 17 -var source_img_uri=$EXISTING_WINDOWS_IMAGE_URI \ 18 -var hostname=$KEY \ 19 -var resource_group=$KEY \ 20 -var existing_resource_group=$EXISTING_RESOURCE_GROUP \ 21 -var admin_password=$PASSWORD \ 22 -var existing_storage_acct=$EXISTING_STORAGE_ACCOUNT_NAME \ 23 -var custom_image_name=$WINDOWS_DISK_NAME; \ 24 /bin/terraform apply out.tfplan; \ 25 /bin/terraform show;" 26 27 # cleanup deployed azure resources via azure-cli 28 docker run --rm -it \ 29 azuresdk/azure-cli-python:0.2.10 \ 30 sh -c "az login --service-principal -u $ARM_CLIENT_ID -p $ARM_CLIENT_SECRET --tenant $ARM_TENANT_ID > /dev/null; \ 31 az vm show -g $KEY -n myvm; \ 32 az storage account show -g $KEY -n $KEY;" 33 34 # cleanup deployed azure resources via terraform 35 docker run --rm -it \ 36 -e ARM_CLIENT_ID \ 37 -e ARM_CLIENT_SECRET \ 38 -e ARM_SUBSCRIPTION_ID \ 39 -e ARM_TENANT_ID \ 40 -v $(pwd):/data \ 41 --workdir=/data \ 42 --entrypoint "/bin/sh" \ 43 hashicorp/terraform:light \ 44 -c "/bin/terraform destroy -force \ 45 -var source_img_uri=$EXISTING_WINDOWS_IMAGE_URI \ 46 -var hostname=$KEY \ 47 -var resource_group=$KEY \ 48 -var existing_resource_group=$EXISTING_RESOURCE_GROUP \ 49 -var admin_password=$PASSWORD \ 50 -var existing_storage_acct=$EXISTING_STORAGE_ACCOUNT_NAME \ 51 -var custom_image_name=$WINDOWS_DISK_NAME \ 52 -target=azurerm_virtual_machine.myvm \ 53 -target=azurerm_virtual_machine.transfer \ 54 -target=azurerm_network_interface.transfernic \ 55 -target=azurerm_network_interface.mynic \ 56 -target=azurerm_virtual_network.vnet \ 57 -target=azurerm_public_ip.mypip \ 58 -target=azurerm_public_ip.transferpip \ 59 -target=azurerm_storage_account.stor;" 60 61 # If you target the resource group to destroy with Terraform, it will destroy the existing storage account, so it must be deleted manually with the CLI. 62 docker run --rm -it \ 63 azuresdk/azure-cli-python:0.2.10 \ 64 sh -c "az login --service-principal -u $ARM_CLIENT_ID -p $ARM_CLIENT_SECRET --tenant $ARM_TENANT_ID > /dev/null; \ 65 az group delete -n $KEY -y"