Created
July 6, 2020 02:57
-
-
Save samloh84/965c922fff6395c5ba612c564d2ce06a to your computer and use it in GitHub Desktop.
.azurerc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
ARM_TENANT_ID="${ARM_TENANT_ID:-}" | |
ARM_SUBSCRIPTION_ID="${ARM_SUBSCRIPTION_ID:-}" | |
ARM_SERVICE_PRINCIPAL_CREDENTIALS_PATH="${HOME}/.azure/terraform_service_principal_credentials.json" | |
AZURE_LOGGED_IN=0 | |
AZURE_ACCESS_TOKEN=$(az account get-access-token --subscription "${ARM_SUBSCRIPTION_ID}") | |
AZURE_GET_ACCESS_TOKEN_EXIT_CODE=$? | |
if [[ ${AZURE_GET_ACCESS_TOKEN_EXIT_CODE} -eq 0 ]]; then | |
AZ_EXPIRY_TIMESTAMP=$(echo "${AZURE_ACCESS_TOKEN}" | jq '.expiresOn | capture("(?<timestamp>[[:digit:]]+-[[:digit:]]+-[[:digit:]]+ [[:digit:]]+:[[:digit:]]+:[[:digit:]]+)").timestamp | strptime("%Y-%m-%d %H:%M:%S") | mktime') | |
CURRENT_TIMESTAMP="$(date +"%s")" | |
if [[ ${AZ_EXPIRY_TIMESTAMP} -gt ${CURRENT_TIMESTAMP} ]]; then | |
AZURE_LOGGED_IN=1 | |
fi | |
fi | |
if [[ ${AZURE_LOGGED_IN} -ne 1 ]]; then | |
az login --tenant "${ARM_TENANT_ID}" | |
fi | |
az account set --subscription "${ARM_SUBSCRIPTION_ID}" | |
if [[ ! -s "${ARM_SERVICE_PRINCIPAL_CREDENTIALS_PATH}" ]]; then | |
az ad sp create-for-rbac --name terraform --role owner --scopes /subscriptions/${ARM_SUBSCRIPTION_ID} | tee "${ARM_SERVICE_PRINCIPAL_CREDENTIALS_PATH}" | |
fi | |
ARM_CLIENT_ID="$(cat "${ARM_SERVICE_PRINCIPAL_CREDENTIALS_PATH}" | jq -r '.appId')" | |
ARM_CLIENT_SECRET="$(cat "${ARM_SERVICE_PRINCIPAL_CREDENTIALS_PATH}" | jq -r '.password')" | |
AZURE_TENANT_ID="${ARM_TENANT_ID}" | |
AZURE_SUBSCRIPTION_ID="${ARM_SUBSCRIPTION_ID}" | |
AZURE_CLIENT_ID="${ARM_CLIENT_ID}" | |
AZURE_CLIENT_SECRET="${ARM_CLIENT_SECRET}" | |
export ARM_TENANT_ID | |
export ARM_SUBSCRIPTION_ID | |
export ARM_CLIENT_ID | |
export ARM_CLIENT_SECRET | |
export AZURE_TENANT_ID | |
export AZURE_SUBSCRIPTION_ID | |
export AZURE_CLIENT_ID | |
export AZURE_CLIENT_SECRET |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment