Guia de Início Rápido: Criar uma entidade de serviço do Azure para o Ansible
Neste guia de início rápido, você criará uma entidade de serviço do Azure com a CLI do Azure ou o Azure PowerShell e se autenticará no Azure por meio do Ansible.
Neste artigo, você aprenderá como:
- Criar uma entidade de serviço do Azure usando a CLI do Azure
- Criar uma entidade de serviço do Azure usando o Azure PowerShell
- Atribuir uma função à entidade de serviço do Azure
- Obter informações de chave da entidade de serviço
- Definir variáveis de ambiente para que o Ansible possa recuperar os valores da entidade de serviço
- Teste a entidade de serviço
Pré-requisitos
- Assinatura do Azure: caso você não tenha uma assinatura do Azure, crie uma conta gratuita antes de começar.
Instalar o Ansible: escolha uma das seguintes opções:
- Instalar e configurar o Ansible em uma máquina virtual do Linux
- Configurar o Azure Cloud Shell
Criar uma entidade de serviço do Azure
Uma entidade de serviço do Azure fornece a você uma conta dedicada para gerenciar os recursos do Azure com o Ansible.
Execute o seguinte código para criar uma entidade de serviço do Azure:
az ad sp create-for-rbac --name ansible \
--role Contributor \
--scopes /subscriptions/<subscription_id>
Observação
Armazene a senha da saída em uma localização segura.
Atribuir uma função à entidade de serviço do Azure
Por padrão, as entidades de serviço não têm o acesso necessário para gerenciar recursos no Azure.
Execute o seguinte comando para atribuir a função Colaborador à entidade de serviço:
az role assignment create --assignee <appID> \
--role Contributor \
--scope /subscriptions/<subscription_id>
Substitua <appID>
pelo valor fornecido da saída do az ad sp create-for-rbac
comando.
Observação
Para aprimorar a segurança, altere o escopo da atribuição de função para um grupo de recursos em vez de uma assinatura.
Obter informações da entidade de serviço do Azure
Para se autenticar no Azure com uma entidade de serviço, você precisa das seguintes informações:
- SubscriptionID
- ID do aplicativo da entidade de serviço
- Senha da entidade de serviço
- TenantID
Execute os seguintes comandos para obter as informações da entidade de serviço:
az account show --query '{tenantId:tenantId,subscriptionid:id}';
az ad sp list --display-name ansible --query '{clientId:[0].appId}'
Autenticar-se no Azure com uma entidade de serviço
Execute os seguintes comandos para preencher as variáveis de ambiente necessárias no servidor do Ansible:
export AZURE_SUBSCRIPTION_ID=<SubscriptionID>
export AZURE_CLIENT_ID=<ApplicationId>
export AZURE_SECRET=<Password>
export AZURE_TENANT=<TenantID>
Substitua <SubscriptionID>
, <ApplicationId>
, <Password>
e <TenantID>
pelos valores da conta da entidade de serviço.
Testar as permissões da entidade de serviço
Execute o seguinte comando para criar um grupo de recursos do Azure:
ansible localhost -m azure_rm_resourcegroup -a "name=<resource_group_name> location=<resource_group_location>"
Substitua <resource_group_name>
e <resource_group_location>
pelos novos valores do grupo de recursos.
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | CHANGED => {
"changed": true,
"contains_resources": false,
"state": {
"id": "/subscriptions/<subscriptionID>/resourceGroups/azcli-test",
"location": "eastus",
"name": "azcli-test",
"provisioning_state": "Succeeded",
"tags": null
}
}
Execute o seguinte comando para excluir o grupo de recursos do Azure:
ansible localhost -m azure_rm_resourcegroup -a "name=<resource_group_name> state=absent force_delete_nonempty=yes"
Substitua <resource_group_name>
pelo nome do grupo de recursos.
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | CHANGED => {
"changed": true,
"contains_resources": false,
"state": {
"id": "/subscriptions/subscriptionID>/resourceGroups/azcli-test",
"location": "eastus",
"name": "azcli-test",
"provisioning_state": "Succeeded",
"status": "Deleted",
"tags": null
}
}