Модуль azure.azcollection.azure_rm_deployment – Создание или удаление развертываний шаблонов Azure Resource Manager
Примечание
Этот модуль входит в коллекцию azure.azcollection (версия 2.7.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 for 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 коллекции, должны быть установлены с помощью pip на хосте, на котором выполняются модули из azure.azcollection.
- Полные инструкции по установке можно найти по адресу https://galaxy.ansible.com/azure/azcollection
Параметры
Параметр | Комментарии |
|---|---|
ad_user string | Имя пользователя Active Directory. Используйте при аутентификации с пользователем Active Directory, а не с субъектом безопасности. |
adfs_authority_url string added in azure.azcollection 0.0.1 | URL-адрес узла Azure AD. Используйте при аутентификации с помощью имени пользователя/пароля и имеете собственный узел ADFS. |
api_profile string added in azure.azcollection 0.0.1 | Выбирает профиль API для использования при взаимодействии с службами Azure. Значение по умолчанию Default: |
append_tags boolean | Используется для управления тем, является ли поле тегов каноническим или просто добавляется к существующим тегам. В каноническом режиме любые теги, не найденные в параметре тегов, будут удалены из метаданных объекта. Choices:
|
auth_source string added in azure.azcollection 0.0.1 | Управляет источником учетных данных для аутентификации. Может быть также установлен через переменную среды При установке в При установке в При установке в При установке в При установке в Параметр Choices:
|
cert_validation_mode string added in azure.azcollection 0.0.1 | Управляет поведением проверки сертификата для конечных точек Azure. По умолчанию все модули будут проверять серверный сертификат, но при использовании прокси-сервера HTTPS или для Azure Stack может потребоваться отключить это поведение, передав Choices:
|
client_id string | Идентификатор клиента Azure. Используйте при аутентификации с помощью субъекта безопасности или управляемой идентичности (msi). Может быть также установлен через переменную среды |
cloud_environment string added in azure.azcollection 0.0.1 | Для облачных сред, отличных от общедоступного облака США, имя среды (как определено в Azure Python SDK, например, Default: |
deployment_mode string | В инкрементном режиме ресурсы развертываются без удаления существующих ресурсов, которые не включены в шаблон. В полном режиме ресурсы развертываются, а существующие ресурсы в группе ресурсов, не включенные в шаблон, удаляются. Choices:
|
disable_instance_discovery boolean added in azure.azcollection 2.3.0 | Определяет, будет ли выполняться обнаружение экземпляров при попытке аутентификации. Установка этого параметра в true полностью отключит как обнаружение экземпляров, так и проверку подлинности. Эта функция предназначена для использования в сценариях, когда конечная точка метаданных недоступна, например, в частных облаках или Azure Stack. Процесс обнаружения экземпляров включает в себя получение метаданных полномочий с https://login.microsoft.com/ для проверки полномочий. Установив это значение в **True**, проверка полномочий отключается. В результате крайне важно убедиться, что настроенный узел полномочий является действительным и заслуживающим доверия. Устанавливается через профиль файла учетных данных или переменную среды Choices:
|
location string | Географические местоположения, в которых будет расположена группа ресурсов. Default: |
log_mode string | Родительский аргумент. |
log_path string | Родительский аргумент. |
имя псевдонимы: deployment_name строка | Имя развертывания, которое будет отслеживаться в истории развертываний группы ресурсов. Использование имени развертывания повторно перезапишет предыдущее значение в истории развертываний группы ресурсов. По умолчанию: |
параметры словарь | Хэш всех необходимых переменных шаблона для шаблона развертывания. Этот параметр несовместим с параметром parameters_link. Если state=present, требуется либо parameters_link, либо parameters. |
parameters_link строка | URI файла, содержащего тело параметров. Этот параметр несовместим с параметром parameters. Если state=present, требуется либо parameters_link, либо parameters. |
пароль строка | Пароль пользователя Active Directory. Используйте, когда аутентификация выполняется с пользователем Active Directory, а не с главным принципом службы. |
профиль строка | Профиль безопасности, найденный в файле ~/.azure/credentials. |
resource_group псевдонимы: resource_group_name строка / обязательно | Имя группы ресурсов для использования или создания для размещения развернутого шаблона. |
секрет строка | Секрет клиента Azure. Используйте, когда аутентификация выполняется с помощью главного принципа службы. |
состояние строка | Если state=present, шаблон будет создан. Если state=present и развертывание существует, оно будет обновлено. Если state=absent, ресурс развертывания будет удален. Варианты:
|
идентификатор_подписки строка | Ваш идентификатор подписки Azure. |
метки словарь | Словарь пар строка:строка для назначения метаданных объекту. Метаданные метки объекта будут обновлены любыми предоставленными значениями. Чтобы удалить метки, установите параметр append_tags в значение false. В настоящее время зоны Azure DNS и службы Traffic Manager также не позволяют использовать пробелы в метке. Azure Front Door не поддерживает использование Azure Automation и Azure CDN поддерживают только 15 меток на ресурсах. |
шаблон словарь | Хэш, содержащий встроенные шаблоны. Этот параметр несовместим с параметром template_link. Если state=present, требуется либо template, либо template_link. |
template_link строка | URI файла, содержащего тело шаблона. Этот параметр несовместим с параметром template. Если state=present, требуется либо template, либо template_link. |
арендатор строка | Идентификатор арендатора Azure. Используйте, когда аутентификация выполняется с помощью главного принципа службы. |
отпечаток строка добавлен в azure.azcollection 1.14.0 | Отпечаток цифровой подписи закрытого ключа, указанного в x509_certificate_path. Используйте, когда аутентификация выполняется с помощью главного принципа службы. Требуется, если определен x509_certificate_path. |
ждать_завершения_развертывания булево | Блокировать выполнение, пока развертывание не завершится. Варианты:
|
период_ожидания_развертывания целое число | Время (в секундах) ожидания между опросами при ожидании завершения развертывания. По умолчанию: |
x509_certificate_path путь добавлен в azure.azcollection 1.14.0 | Путь к сертификату X509, используемому для создания главного принципа службы в формате PEM. Сертификат должен быть добавлен к закрытому ключу. Используйте, когда аутентификация выполняется с помощью главного принципа службы. |
Примечания
Примечание
- Для аутентификации с Azure можно передавать параметры, устанавливать переменные среды, использовать профиль, хранящийся в файле ~/.azure/credentials, или войти в систему перед запуском задач или плана с
az login. - Аутентификация также возможна с помощью главного принципа службы или пользователя Active Directory.
- Для аутентификации через главного принципа службы передайте 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. Также можно добавить дополнительные профили. Укажите профиль, передав профиль или установив 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 сложное | Подробности развертывания. Возвращается: всегда |
|
group_name строка |
Имя группы ресурсов. Возвращается: всегда Пример: |
|
id строка |
Идентификатор Azure развертывания. Возвращается: всегда Пример: |
|
instances список / элементы=строка |
Предоставляет общедоступные IP-адреса для каждого экземпляра виртуальной машины. Возвращается: всегда |
|
ips список / элементы=строка |
Список общедоступных IP-адресов. Возвращается: всегда |
|
dns_settings сложное |
Настройки DNS. Возвращается: всегда |
|
domain_name_label строка |
Метка доменного имени. Возвращается: всегда Пример: |
|
fqdn строка |
Полное доменное имя. Возвращается: всегда Пример: |
|
id строка |
Идентификатор общедоступного IP-ресурса. Возвращается: всегда Пример: |
|
name строка |
Имя общедоступного IP-ресурса. Возвращается: всегда Пример: |
|
public_ip строка |
Значение общедоступного IP-адреса. Возвращается: всегда Пример: |
|
public_ip_allocation_method строка |
Метод выделения общедоступного IP-адреса. Возвращается: всегда Пример: |
|
vm_name строка |
Имя виртуальной машины. Возвращается: всегда Пример: |
|
name строка |
Имя развертывания. Возвращается: всегда Пример: |
|
outputs словарь |
Словарь значений возврата от развертывания. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/azure/azcollection/azure_rm_deployment_module.html