| name | azurecli |
| description | Referência e guia de uso do Azure CLI (az) para gerenciar recursos Azure: autenticação, resource groups, AKS, ACR, Key Vault, App Service, PostgreSQL gerenciado e networking. Use quando: provisionar ou gerenciar recursos Azure via linha de comando, scripts de automação ou pipelines CI/CD. |
| user-invocable | true |
Azure CLI — Gerenciamento de Recursos Azure
Quando Usar
- Provisionar ou gerenciar recursos Azure sem Terraform (scripts rápidos, bootstrap)
- Autenticar e configurar acesso a clusters AKS
- Empurrar imagens para Azure Container Registry (ACR)
- Gerenciar segredos no Key Vault
- Scripts de automação em Bash para pipelines CI/CD
Instalação e Autenticação
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
brew install azure-cli
az version
az login
az login --tenant <tenant-id>
az login --service-principal \
--username $ARM_CLIENT_ID \
--password $ARM_CLIENT_SECRET \
--tenant $ARM_TENANT_ID
az account list --output table
az account set --subscription "Nome ou ID da subscription"
az account show
az configure --defaults output=table
az configure --defaults group=meu-resource-group location=brazilsouth
Resource Groups
az group create \
--name rg-DevKit-prod \
--location brazilsouth \
--tags Environment=production Project=DevKit
az group list --output table
az group exists --name rg-DevKit-prod
az group delete --name rg-DevKit-prod --yes --no-wait
az group show --name rg-DevKit-prod --query id --output tsv
AKS — Azure Kubernetes Service
az aks create \
--resource-group rg-DevKit-prod \
--name aks-DevKit-prod \
--node-count 3 \
--node-vm-size Standard_D4s_v3 \
--min-count 2 \
--max-count 10 \
--enable-cluster-autoscaler \
--kubernetes-version 1.29 \
--network-plugin azure \
--load-balancer-sku standard \
--enable-managed-identity \
--generate-ssh-keys \
--tags Environment=production
az aks get-credentials \
--resource-group rg-DevKit-prod \
--name aks-DevKit-prod \
--overwrite-existing
az aks list --output table
az aks get-versions --location brazilsouth --output table
az aks upgrade \
--resource-group rg-DevKit-prod \
--name aks-DevKit-prod \
--kubernetes-version 1.30
az aks scale \
--resource-group rg-DevKit-prod \
--name aks-DevKit-prod \
--node-count 5
az aks nodepool add \
--resource-group rg-DevKit-prod \
--cluster-name aks-DevKit-prod \
--name workerpool \
--node-count 2 \
--node-vm-size Standard_D8s_v3 \
--mode User
az aks stop --resource-group rg-DevKit-prod --name aks-DevKit-dev
az aks start --resource-group rg-DevKit-prod --name aks-DevKit-dev
az aks delete \
--resource-group rg-DevKit-prod \
--name aks-DevKit-prod \
--yes --no-wait
ACR — Azure Container Registry
az acr create \
--resource-group rg-DevKit-prod \
--name acrDevKit \
--sku Standard \
--admin-enabled false
az acr login --name acrDevKit
az acr build \
--registry acrDevKit \
--image myapp:$GIT_SHA \
.
az acr repository list --name acrDevKit --output table
az acr repository show-tags --name acrDevKit --repository myapp --output table
az aks update \
--resource-group rg-DevKit-prod \
--name aks-DevKit-prod \
--attach-acr acrDevKit
az acr run \
--registry acrDevKit \
--cmd "acr purge --filter 'myapp:.*' --keep 10 --ago 7d" \
/dev/null
Key Vault
az keyvault create \
--resource-group rg-DevKit-prod \
--name kv-DevKit-prod \
--location brazilsouth \
--enable-rbac-authorization true
az role assignment create \
--role "Key Vault Secrets Officer" \
--assignee $APP_OBJECT_ID \
--scope $(az keyvault show --name kv-DevKit-prod --query id --output tsv)
az keyvault secret set \
--vault-name kv-DevKit-prod \
--name DATABASE-PASSWORD \
--value "senha_secreta"
az keyvault secret show \
--vault-name kv-DevKit-prod \
--name DATABASE-PASSWORD \
--query value \
--output tsv
az keyvault secret list \
--vault-name kv-DevKit-prod \
--output table
az keyvault secret delete \
--vault-name kv-DevKit-prod \
--name DATABASE-PASSWORD
az keyvault key create \
--vault-name kv-DevKit-prod \
--name mykey \
--kty RSA \
--size 2048
PostgreSQL Flexível (Managed)
az postgres flexible-server create \
--resource-group rg-DevKit-prod \
--name psql-DevKit-prod \
--location brazilsouth \
--admin-user pgadmin \
--admin-password "$DB_ADMIN_PASSWORD" \
--sku-name Standard_D4s_v3 \
--tier GeneralPurpose \
--storage-size 128 \
--version 16 \
--high-availability Enabled
az postgres flexible-server db create \
--resource-group rg-DevKit-prod \
--server-name psql-DevKit-prod \
--database-name DevKit
az postgres flexible-server firewall-rule create \
--resource-group rg-DevKit-prod \
--name psql-DevKit-prod \
--rule-name AllowAKS \
--start-ip-address 10.0.1.0 \
--end-ip-address 10.0.1.255
az postgres flexible-server connect \
--name psql-DevKit-prod \
--admin-user pgadmin \
--database-name DevKit
Networking
az network vnet create \
--resource-group rg-DevKit-prod \
--name vnet-DevKit-prod \
--address-prefix 10.0.0.0/16
az network vnet subnet create \
--resource-group rg-DevKit-prod \
--vnet-name vnet-DevKit-prod \
--name subnet-aks \
--address-prefix 10.0.1.0/24
az network vnet subnet create \
--resource-group rg-DevKit-prod \
--vnet-name vnet-DevKit-prod \
--name subnet-db \
--address-prefix 10.0.2.0/24
az network nsg create \
--resource-group rg-DevKit-prod \
--name nsg-aks
az network nsg rule create \
--resource-group rg-DevKit-prod \
--nsg-name nsg-aks \
--name AllowHTTPS \
--priority 100 \
--protocol Tcp \
--destination-port-ranges 443 \
--access Allow
Service Principal para CI/CD
az ad sp create-for-rbac \
--name sp-DevKit-cicd \
--role Contributor \
--scopes /subscriptions/$SUBSCRIPTION_ID/resourceGroups/rg-DevKit-prod \
--output json
az ad sp list --display-name sp-DevKit-cicd --output table
az ad sp credential reset --id $APP_ID
Consultas Úteis com JMESPath
az group list --query "[?location=='brazilsouth'].name" --output tsv
az network public-ip show \
--resource-group rg-DevKit-prod \
--name pip-lb \
--query ipAddress \
--output tsv
kubectl get pods --all-namespaces --field-selector=status.phase=Running
az consumption usage list \
--billing-period-name $(date +%Y%m) \
--query "[?resourceGroup=='rg-DevKit-prod']" \
--output table
Output Esperado
- Comandos organizados por recurso para o ambiente alvo
- Service Principal criado e configurado para CI/CD
- AKS com kubeconfig atualizado localmente
- ACR integrado ao AKS com permissão de pull
- Key Vault com RBAC configurado para a aplicação