Rychlý start: Vytvoření instančního objektu Azure pro Ansible
V tomto rychlém startu vytvoříte instanční objekt Azure pomocí AzureCLI nebo Azure PowerShellu a ověříte ho v Azure z Ansible.
V tomto článku získáte informace o těchto tématech:
- Vytvoření instančního objektu Azure pomocí Azure CLI
- Vytvoření instančního objektu Azure pomocí Azure PowerShellu
- Přiřazení role k instančnímu objektu Azure
- Získání klíčových informací z instančního objektu
- Nastavení proměnných prostředí tak, aby Ansible mohl načíst hodnoty instančního objektu
- Otestování instančního objektu
Požadavky
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Nainstalujte Ansible: Proveďte jednu z následujících možností:
- Instalace a konfigurace Ansible na virtuálním počítači s Linuxem
- Konfigurace služby Azure Cloud Shell
Vytvoření instančního objektu Azure
Instanční objekt Azure poskytuje vyhrazený účet pro správu prostředků Azure pomocí Ansible.
Spuštěním následujícího kódu vytvořte instanční objekt Azure:
az ad sp create-for-rbac --name ansible \
--role Contributor \
--scopes /subscriptions/<subscription_id>
Poznámka:
Uložte heslo z výstupu do zabezpečeného umístění.
Přiřazení role k instančnímu objektu Azure
Ve výchozím nastavení nemají instanční objekty přístup potřebný ke správě prostředků v Azure.
Spuštěním následujícího příkazu přiřaďte roli Přispěvatel instančnímu objektu:
az role assignment create --assignee <appID> \
--role Contributor \
--scope /subscriptions/<subscription_id>
Nahraďte <appID>
hodnotou zadanou z výstupu az ad sp create-for-rbac
příkazu.
Poznámka:
Pokud chcete zlepšit zabezpečení, změňte obor přiřazení role ke skupině prostředků místo předplatného.
Získání informací o instančním objektu Azure
Pokud se chcete ověřit v Azure pomocí instančního objektu, potřebujete následující informace:
- SubscriptionID
- ID aplikace instančního objektu
- Heslo instančního objektu
- TenantID
Spuštěním následujících příkazů získejte informace o instančním objektu:
az account show --query '{tenantId:tenantId,subscriptionid:id}';
az ad sp list --display-name ansible --query '{clientId:[0].appId}'
Ověřování v Azure pomocí instančního objektu
Spuštěním následujících příkazů naplňte požadované proměnné prostředí na serveru Ansible:
export AZURE_SUBSCRIPTION_ID=<SubscriptionID>
export AZURE_CLIENT_ID=<ApplicationId>
export AZURE_SECRET=<Password>
export AZURE_TENANT=<TenantID>
Nahraďte <SubscriptionID>
, <Password>
<ApplicationId>
a <TenantID>
hodnotami vašeho účtu instančního objektu.
Testování oprávnění instančního objektu
Spuštěním následujícího příkazu vytvořte novou skupinu prostředků Azure:
ansible localhost -m azure_rm_resourcegroup -a "name=<resource_group_name> location=<resource_group_location>"
Nahraďte <resource_group_name>
nové hodnoty skupiny prostředků a <resource_group_location>
nahraďte je.
[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
}
}
Spuštěním následujícího příkazu odstraňte skupinu prostředků Azure:
ansible localhost -m azure_rm_resourcegroup -a "name=<resource_group_name> state=absent force_delete_nonempty=yes"
Nahraďte <resource_group_name>
názvem vaší skupiny prostředků.
[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
}
}