Snabbstart: Skapa ett Azure-tjänsthuvudnamn för Ansible
I den här snabbstarten skapar du ett Huvudnamn för Azure-tjänsten med AzureCLI eller Azure PowerShell och autentiserar till Azure från Ansible.
I den här artikeln kan du se hur du:
- Skapa ett Huvudnamn för Azure-tjänsten med hjälp av Azure CLI
- Skapa ett Huvudnamn för Azure-tjänsten med hjälp av Azure PowerShell
- Tilldela en roll till Azure-tjänstens huvudnamn
- Hämta viktig information från tjänstens huvudnamn
- Ange miljövariabler så att Ansible kan hämta tjänstens huvudnamnsvärden
- Testa tjänstens huvudnamn
Förutsättningar
- Azure-prenumeration: Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Installera Ansible: Gör något av följande alternativ:
- Installera och konfigurera Ansible på en virtuell Linux-dator
- Konfigurera Azure Cloud Shell
Skapa Azure-tjänstens huvudnamn
Ett huvudnamn för Azure-tjänsten ger dig ett dedikerat konto för att hantera Azure-resurser med Ansible.
Kör följande kod för att skapa ett Huvudnamn för Azure-tjänsten:
az ad sp create-for-rbac --name ansible \
--role Contributor \
--scopes /subscriptions/<subscription_id>
Kommentar
Lagra lösenordet från utdata på en säker plats.
Tilldela en roll till Azure-tjänstens huvudnamn
Som standard har tjänstens huvudnamn inte den åtkomst som krävs för att hantera resurser i Azure.
Kör följande kommando för att tilldela rollen Deltagare till tjänstens huvudnamn:
az role assignment create --assignee <appID> \
--role Contributor \
--scope /subscriptions/<subscription_id>
Ersätt <appID>
med värdet från kommandots az ad sp create-for-rbac
utdata.
Kommentar
För att förbättra säkerheten ändrar du omfånget för rolltilldelningen till en resursgrupp i stället för en prenumeration.
Hämta information om tjänstens huvudnamn för Azure
Om du vill autentisera till Azure med tjänstens huvudnamn behöver du följande information:
- SubscriptionID
- ApplicationId för tjänstens huvudnamn
- Lösenord för tjänstens huvudnamn
- TenantID
Kör följande kommandon för att hämta information om tjänstens huvudnamn:
az account show --query '{tenantId:tenantId,subscriptionid:id}';
az ad sp list --display-name ansible --query '{clientId:[0].appId}'
Autentisera till Azure med tjänstens huvudnamn
Kör följande kommandon för att fylla i de miljövariabler som krävs på Ansible-servern:
export AZURE_SUBSCRIPTION_ID=<SubscriptionID>
export AZURE_CLIENT_ID=<ApplicationId>
export AZURE_SECRET=<Password>
export AZURE_TENANT=<TenantID>
Ersätt <SubscriptionID>
, <ApplicationId>
, <Password>
och <TenantID>
med värdena för ditt konto för tjänstens huvudnamn.
Testa tjänstens huvudnamnsbehörigheter
Kör följande kommando för att skapa en ny Azure-resursgrupp:
ansible localhost -m azure_rm_resourcegroup -a "name=<resource_group_name> location=<resource_group_location>"
Ersätt <resource_group_name>
och <resource_group_location>
med dina nya resursgruppsvärden.
[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
}
}
Kör följande kommando för att ta bort Azure-resursgruppen:
ansible localhost -m azure_rm_resourcegroup -a "name=<resource_group_name> state=absent force_delete_nonempty=yes"
Ersätt <resource_group_name>
med namnet på resursgruppen.
[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
}
}