Dela via


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.

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
    }
}

Nästa steg