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"