Модуль azure.azcollection.azure_rm_deployment — создание и удаление развертываний шаблонов Azure Resource Manager
Примечание
Этот модуль входит в коллекцию azure.azcollection (версия 3.18.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install azure.azcollection. Для использования этого модуля необходимы дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: azure.azcollection.azure_rm_deployment.
Добавлено в azure.azcollection 0.1.0
Краткое описание
- Создание и удаление развертываний шаблонов Azure Resource Manager с помощью Azure SDK для Python.
- Примеры шаблонов для быстрого начала работы можно найти на GitHub: https://github.com/azure/azure-quickstart-templates.
- Дополнительные сведения о шаблонах Azure Resource Manager см. на странице https://azure.microsoft.com/en-us/documentation/articles/resource-group-template-deploy/.
Требования
На хосте, выполняющем этот модуль, должны быть установлены следующие компоненты.
- python >= 2.7
- На хосте, выполняющем этот модуль, должна быть установлена коллекция azure.azcollection через Galaxy
- Все пакеты Python, перечисленные в requirements.txt коллекции, должны быть установлены на хосте, выполняющем модули из azure.azcollection, с помощью pip
- Полные инструкции по установке см. на странице https://galaxy.ansible.com/azure/azcollection
Параметры
Параметр | Описание |
|---|---|
ad_user string | Имя пользователя Active Directory. Используйте при аутентификации от имени пользователя Active Directory, а не субъекта-службы. |
adfs_authority_url string добавлено в azure.azcollection 0.0.1 | URL центра Azure AD. Используйте при аутентификации с помощью имени пользователя и пароля, если у вас есть собственный центр ADFS. |
api_profile string добавлено в azure.azcollection 0.0.1 | Выбирает профиль API для взаимодействия со службами Azure. Значение по умолчанию По умолчанию: |
append_tags boolean | Определяет, является ли поле тегов каноническим или только добавляет теги к существующим. В каноническом режиме все теги, отсутствующие в параметре tags, удаляются из метаданных объекта. Варианты:
|
auth_source string добавлено в azure.azcollection 0.0.1 | Определяет источник учетных данных для аутентификации. Можно также задать с помощью переменной среды Если задано значение Если задано значение Если задано значение Если задано значение Если задано значение Параметр Варианты:
|
cert_validation_mode string добавлено в azure.azcollection 0.0.1 | Управляет проверкой сертификатов для конечных точек Azure. По умолчанию все модули проверяют сертификат сервера, но при использовании HTTPS-прокси или Azure Stack может потребоваться отключить эту проверку, передав Варианты:
|
client_id string | Идентификатор клиента Azure. Используйте при аутентификации с помощью субъекта-службы или управляемого удостоверения (msi). Можно также задать с помощью переменной среды |
cloud_environment string добавлено в azure.azcollection 0.0.1 | Для облачных сред, отличных от общедоступного облака США, укажите имя среды (как определено в Azure Python SDK, например По умолчанию: |
deployment_mode string | В режиме инкрементального развертывания ресурсы развертываются без удаления существующих ресурсов, не включенных в шаблон. В режиме полного развертывания ресурсы развертываются, а существующие ресурсы в группе ресурсов, не включенные в шаблон, удаляются. Варианты:
|
disable_instance_discovery boolean добавлено в azure.azcollection 2.3.0 | Определяет, выполняется ли обнаружение экземпляров при попытке аутентификации. Если задать значение true, обнаружение экземпляров и проверка центра авторизации будут полностью отключены. Эта функция предназначена для использования в случаях, когда конечная точка метаданных недоступна, например в частных облаках или Azure Stack. Обнаружение экземпляров включает получение метаданных центра авторизации с https://login.microsoft.com/ для проверки центра. Если задать значение **True**, проверка центра будет отключена. Поэтому крайне важно убедиться, что настроенный узел центра авторизации является действительным и заслуживающим доверия. Задается через профиль файла учетных данных или переменную среды Варианты:
|
location string | Географические расположения, в которых будет находиться группа ресурсов. По умолчанию: |
log_mode string | Родительский аргумент. |
log_path string | Родительский аргумент. |
name псевдонимы: deployment_name string | Имя развертывания, которое будет отображаться в журнале развертываний группы ресурсов. Повторное использование имени развертывания перезапишет предыдущее значение в журнале развертываний группы ресурсов. По умолчанию: |
oidc_token string добавлено в azure.azcollection 3.17.0 | Токен OpenID Connect (OIDC) (JWT), используемый для аутентификации удостоверения рабочей нагрузки. Этот токен обменивается с Azure AD с помощью федеративного удостоверения OIDC. Полезен в системах CI (например, GitHub Actions и Azure DevOps), где платформа предоставляет токен OIDC напрямую. Можно также задать с помощью переменной среды |
oidc_token_file_path path добавлено в azure.azcollection 3.17.0 | Путь к файлу, содержащему токен OpenID Connect (OIDC) (JWT), используемый для аутентификации удостоверения рабочей нагрузки. Файл должен содержать только необработанный токен. Этот метод часто используется на платформах, которые сохраняют токены OIDC в виде файлов. Можно также задать с помощью переменной среды |
parameters dictionary | Хеш-словарь всех переменных шаблона, необходимых для развертывания. Этот параметр нельзя использовать одновременно с parameters_link. Если задано state=present, необходимо указать либо parameters_link, либо parameters. |
parameters_link string | URI файла, содержащего тело параметров. Этот параметр нельзя использовать одновременно с parameters. Если задано state=present, необходимо указать либо parameters_link, либо parameters. |
password string | Пароль пользователя Active Directory. Используйте при аутентификации от имени пользователя Active Directory, а не субъекта-службы. |
profile string | Профиль безопасности из файла ~/.azure/credentials. |
resource_group псевдонимы: resource_group_name string / обязательный | Имя группы ресурсов, которая будет использоваться или создана для размещения развернутого шаблона. |
secret string | Секрет клиента Azure. Используйте при аутентификации с помощью субъекта-службы. |
state string | Если state=present, шаблон будет создан. Если задано state=present и развертывание существует, оно будет обновлено. Если задано state=absent, ресурс развертывания будет удален. Варианты:
|
subscription_id string | Идентификатор вашей подписки Azure. |
tags dictionary | Словарь пар строка:строка, назначаемых объекту в качестве метаданных. Метаданные объекта будут обновлены с учетом всех указанных значений. Чтобы удалить теги, задайте для параметра append_tags значение false. В настоящее время в тегах зон Azure DNS и служб Traffic Manager также нельзя использовать пробелы. Azure Front Door не поддерживает использование Azure Automation и Azure CDN поддерживают не более 15 тегов для ресурсов. |
template dictionary | Хеш-словарь с шаблонами, указанными непосредственно в параметре. Этот параметр нельзя использовать одновременно с template_link. Если задано state=present, необходимо указать либо template, либо template_link. |
template_link string | URI файла, содержащего тело шаблона. Этот параметр нельзя использовать одновременно с template. Если задано state=present, необходимо указать либо template, либо template_link. |
tenant string | Идентификатор клиента Azure. Используйте при аутентификации с помощью субъекта-службы. |
thumbprint string добавлено в azure.azcollection 1.14.0 | Отпечаток закрытого ключа, указанного в x509_certificate_path. Используйте при аутентификации с помощью субъекта-службы. Обязателен, если задан x509_certificate_path. |
wait_for_deployment_completion boolean | Определяет, следует ли ожидать завершения развертывания, приостанавливая выполнение. Варианты:
|
wait_for_deployment_polling_period integer | Интервал (в секундах) между проверками при ожидании завершения развертывания. По умолчанию: |
x509_certificate_path path добавлено в azure.azcollection 1.14.0 | Путь к сертификату X509 в формате PEM, используемому для создания субъекта-службы. Закрытый ключ должен быть добавлен в конец сертификата. Используйте при аутентификации с помощью субъекта-службы. |
Примечания
Примечание
- Для аутентификации в Azure можно передавать параметры, задавать переменные среды, использовать профиль из ~/.azure/credentials или выполнить вход перед запуском задач или плейбука с помощью
az login. - Аутентификация также возможна с помощью субъекта-службы или пользователя Active Directory.
- Для аутентификации через OIDC передайте client_id, tenant и oidc_token либо oidc_token_file_path или задайте переменные среды AZURE_CLIENT_ID, AZURE_TENANT и AZURE_FEDERATED_TOKEN либо AZURE_FEDERATED_TOKEN_FILE.
- Для аутентификации через субъект-службу передайте subscription_id, client_id, secret и tenant или задайте переменные среды AZURE_SUBSCRIPTION_ID, AZURE_CLIENT_ID, AZURE_SECRET и AZURE_TENANT.
- Для аутентификации от имени пользователя Active Directory передайте ad_user и password или задайте в среде переменные AZURE_AD_USER и AZURE_PASSWORD.
- Также учетные данные можно хранить в ~/.azure/credentials. Это ini-файл, содержащий раздел [default] и следующие ключи: subscription_id, client_id, secret и tenant либо subscription_id, ad_user и password. Можно также добавить дополнительные профили. Укажите профиль, передав profile или задав в среде AZURE_PROFILE.
См. также
См. также
- Вход с помощью Azure CLI
-
Инструкции по аутентификации с помощью команды
az login.
Примеры
# Destroy a template deployment
- name: Destroy Azure Deploy
azure_rm_deployment:
resource_group: myResourceGroup
name: myDeployment
state: absent
# Create or update a template deployment based on uris using parameter and template links
- name: Create Azure Deploy
azure_rm_deployment:
resource_group: myResourceGroup
name: myDeployment
template_link: 'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-linux/azuredeploy.json'
parameters_link: 'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-linux/azuredeploy.parameters.json'
# Create or update a template deployment based on a uri to the template and parameters specified inline.
# This deploys a VM with SSH support for a given public key, then stores the result in 'azure_vms'. The result is then
# used to create a new host group. This host group is then used to wait for each instance to respond to the public IP SSH.
- name: Create Azure Deploy
azure_rm_deployment:
resource_group: myResourceGroup
name: myDeployment
parameters:
newStorageAccountName:
value: devopsclestorage1
adminUsername:
value: devopscle
dnsNameForPublicIP:
value: devopscleazure
location:
value: West US
vmSize:
value: Standard_A2
vmName:
value: ansibleSshVm
sshKeyData:
value: YOUR_SSH_PUBLIC_KEY
template_link: 'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-sshkey/azuredeploy.json'
register: azure
- name: Add new instance to host group
add_host:
hostname: "{{ item['ips'][0].public_ip }}"
groupname: azure_vms
loop: "{{ azure.deployment.instances }}"
# Deploy an Azure WebApp running a hello world'ish node app
- name: Create Azure WebApp Deployment at http://devopscleweb.azurewebsites.net/hello.js
azure_rm_deployment:
resource_group: myResourceGroup
name: myDeployment
parameters:
repoURL:
value: 'https://github.com/devigned/az-roadshow-oss.git'
siteName:
value: devopscleweb
hostingPlanName:
value: someplan
siteLocation:
value: westus
sku:
value: Standard
template_link: 'https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/201-web-app-github-deploy/azuredeploy.json'
# Create or update a template deployment based on an inline template and parameters
- name: Create Azure Deploy
azure_rm_deployment:
resource_group: myResourceGroup
name: myDeployment
template:
$schema: "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#"
contentVersion: "1.0.0.0"
parameters:
newStorageAccountName:
type: "string"
metadata:
description: "Unique DNS Name for the Storage Account where the Virtual Machine's disks will be placed."
adminUsername:
type: "string"
metadata:
description: "User name for the Virtual Machine."
adminPassword:
type: "securestring"
metadata:
description: "Password for the Virtual Machine."
dnsNameForPublicIP:
type: "string"
metadata:
description: "Unique DNS Name for the Public IP used to access the Virtual Machine."
ubuntuOSVersion:
type: "string"
defaultValue: "14.04.2-LTS"
allowedValues:
- "12.04.5-LTS"
- "14.04.2-LTS"
- "15.04"
metadata:
description: >
The Ubuntu version for the VM. This will pick a fully patched image of this given Ubuntu version.
Allowed values: 12.04.5-LTS, 14.04.2-LTS, 15.04."
variables:
location: "West US"
imagePublisher: "Canonical"
imageOffer: "UbuntuServer"
OSDiskName: "osdiskforlinuxsimple"
nicName: "myVMNic"
addressPrefix: "192.0.2.0/24"
subnetName: "Subnet"
subnetPrefix: "10.0.0.0/24"
storageAccountType: "Standard_LRS"
publicIPAddressName: "myPublicIP"
publicIPAddressType: "Dynamic"
vmStorageAccountContainerName: "vhds"
vmName: "MyUbuntuVM"
vmSize: "Standard_D1"
virtualNetworkName: "MyVNET"
vnetID: "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]"
subnetRef: "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]"
resources:
- type: "Microsoft.Storage/storageAccounts"
name: "[parameters('newStorageAccountName')]"
apiVersion: "2015-05-01-preview"
location: "[variables('location')]"
properties:
accountType: "[variables('storageAccountType')]"
- apiVersion: "2015-05-01-preview"
type: "Microsoft.Network/publicIPAddresses"
name: "[variables('publicIPAddressName')]"
location: "[variables('location')]"
properties:
publicIPAllocationMethod: "[variables('publicIPAddressType')]"
dnsSettings:
domainNameLabel: "[parameters('dnsNameForPublicIP')]"
- type: "Microsoft.Network/virtualNetworks"
apiVersion: "2015-05-01-preview"
name: "[variables('virtualNetworkName')]"
location: "[variables('location')]"
properties:
addressSpace:
addressPrefixes:
- "[variables('addressPrefix')]"
subnets:
-
name: "[variables('subnetName')]"
properties:
addressPrefix: "[variables('subnetPrefix')]"
- type: "Microsoft.Network/networkInterfaces"
apiVersion: "2015-05-01-preview"
name: "[variables('nicName')]"
location: "[variables('location')]"
dependsOn:
- "[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]"
- "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"
properties:
ipConfigurations:
-
name: "ipconfig1"
properties:
privateIPAllocationMethod: "Dynamic"
publicIPAddress:
id: "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]"
subnet:
id: "[variables('subnetRef')]"
- type: "Microsoft.Compute/virtualMachines"
apiVersion: "2015-06-15"
name: "[variables('vmName')]"
location: "[variables('location')]"
dependsOn:
- "[concat('Microsoft.Storage/storageAccounts/', parameters('newStorageAccountName'))]"
- "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
properties:
hardwareProfile:
vmSize: "[variables('vmSize')]"
osProfile:
computername: "[variables('vmName')]"
adminUsername: "[parameters('adminUsername')]"
adminPassword: "[parameters('adminPassword')]"
storageProfile:
imageReference:
publisher: "[variables('imagePublisher')]"
offer: "[variables('imageOffer')]"
sku: "[parameters('ubuntuOSVersion')]"
version: "latest"
osDisk:
name: "osdisk"
vhd:
uri: >
[concat('http://',parameters('newStorageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',
variables('OSDiskName'),'.vhd')]
caching: "ReadWrite"
createOption: "FromImage"
networkProfile:
networkInterfaces:
-
id: "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"
diagnosticsProfile:
bootDiagnostics:
enabled: "true"
storageUri: "[concat('http://',parameters('newStorageAccountName'),'.blob.core.windows.net')]"
parameters:
newStorageAccountName:
value: devopsclestorage
adminUsername:
value: devopscle
adminPassword:
value: Password1!
dnsNameForPublicIP:
value: devopscleazure
Возвращаемые значения
Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
deployment complex | Сведения о развертывании. Возвращается: всегда |
|
group_name string |
Имя группы ресурсов. Возвращается: всегда Пример: |
|
id string |
Идентификатор развертывания в Azure. Возвращается: всегда Пример: |
|
instances list / elements=string |
Содержит общедоступные IP-адреса для каждого экземпляра виртуальной машины. Возвращается: всегда |
|
ips list / elements=string |
Список общедоступных IP-адресов. Возвращается: всегда |
|
dns_settings complex |
Параметры DNS. Возвращается: всегда |
|
domain_name_label string |
Метка доменного имени. Возвращается: всегда Пример: |
|
fqdn string |
Полное доменное имя. Возвращается: всегда Пример: |
|
id string |
Идентификатор ресурса общедоступного IP-адреса. Возвращается: всегда Пример: |
|
name string |
Имя ресурса общедоступного IP-адреса. Возвращается: всегда Пример: |
|
public_ip string |
Значение общедоступного IP-адреса. Возвращается: всегда Пример: |
|
public_ip_allocation_method string |
Метод выделения общедоступного IP-адреса. Возвращается: всегда Пример: |
|
vm_name string |
Имя виртуальной машины. Возвращается: всегда Пример: |
|
name string |
Имя развертывания. Возвращается: всегда Пример: |
|
outputs dictionary |
Словарь выходных данных, полученных в результате развертывания. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/azure/azcollection/azure_rm_deployment_module.html