azure_rm_virtualmachine – Управление виртуальными машинами Azure
Новое в версии 2.1.
Описание
- Создание, обновление, остановка и запуск виртуальной машины. Предоставьте существующую учетную запись хранилища и сетевой интерфейс или разрешите модулю создать их для вас. Если вы не предоставите сетевой интерфейс, группа ресурсов должна содержать виртуальную сеть с по крайней мере одной подсетью.
- До Ansible 2.5 это требовало образа, найденного в Azure Marketplace, который можно обнаружить с помощью azure_rm_virtualmachineimage_facts. В Ansible 2.5 и более поздних версиях также можно использовать пользовательские образы, см. примеры для получения дополнительных сведений.
- Если вам необходимо использовать параметр custom_data, многие образы в Marketplace не готовы к cloud-init. Таким образом, данные, отправленные в custom_data, будут проигнорированы. Если используемый вами образ не указан в https://docs.microsoft.com/en-us/azure/virtual-machines/linux/using-cloud-init#cloud-init-overview, выполните следующие шаги https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cloudinit-prepare-custom-image.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.7
- azure >= 2.0.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| accept_terms boolean добавлен в 2.7 |
| Принимать условия для изображений на торговой площадке, если это требуется Только администраторы службы Azure/администраторы учетных записей могут покупать изображения с торговой площадки | |
| ad_user строка | Имя пользователя Active Directory. Используйте при аутентификации с пользователем Active Directory, а не с принципалом службы. | ||
| adfs_authority_url строка добавлен в 2.6 | URL-адрес авторизации Azure AD. Используйте при аутентификации с именем пользователя/паролем и собственной службой авторизации ADFS. | ||
| admin_password - | Пароль для имени пользователя администратора. Не требуется, если тип ОС — Linux, а аутентификация по паролю SSH отключена, установив ssh_password_enabled в false. | ||
| admin_username - | Имя пользователя администратора, используемое для доступа к хосту после его создания. Требуется при создании виртуальной машины. | ||
| allocated boolean |
| Переключатель, определяющий, выделена ли машина/освобождена, полезен только при state='present'. | |
| api_profile строка добавлен в 2.5 | Значение по умолчанию: "latest" | Выбирает профиль API для использования при общении с службами Azure. Значение по умолчанию latest подходит для общедоступных облаков; будущие значения позволят использовать с Azure Stack. | |
| append_tags boolean |
| Управляет тем, является ли поле тегов каноническим или оно просто добавляется к существующим тегам. При каноническом формате любые теги, отсутствующие в параметре тегов, будут удалены из метаданных объекта. | |
| auth_source строка добавлен в 2.5 |
| Управляет источником учетных данных для аутентификации. Если не указано, будет использована переменная среды ANSIBLE_AZURE_AUTH_SOURCE и по умолчанию установлено значение auto если переменная не определена.auto будет следовать стандартному порядку приоритета параметров модуля -> переменные среды -> профиль по умолчанию в файле учетных данных ~/.azure/credentials.При установке значения cli, учетные данные будут получены из профиля Azure CLI по умолчанию.Также может быть установлено через переменную среды ANSIBLE_AZURE_AUTH_SOURCE.При установке значения msi, хост-машина должна быть ресурсом Azure с включенным расширением MSI. subscription_id или переменная среды AZURE_SUBSCRIPTION_ID могут использоваться для определения идентификатора подписки, если ресурсу предоставлен доступ к нескольким подпискам, в противном случае выбирается первая подписка.msi был добавлен в Ansible 2.6. | |
| availability_set - добавлен в 2.5 | Имя или идентификатор существующего набора доступности для добавления виртуальной машины. Набор доступности должен находиться в той же группе ресурсов, что и виртуальная машина. | ||
| cert_validation_mode строка добавлен в 2.5 |
| Управляет поведением проверки сертификатов для конечных точек Azure. По умолчанию все модули проверяют серверный сертификат, но при использовании прокси-сервера HTTPS или при работе с Azure Stack может потребоваться отключение этого поведения путем передачи ignore. Также может быть установлено через профиль файла учетных данных или переменную среды AZURE_CERT_VALIDATION. | |
| client_id строка | Идентификатор клиента Azure. Используйте при аутентификации с принципалом службы. | ||
| cloud_environment строка добавлен в 2.4 | Значение по умолчанию: "AzureCloud" | Для облачных сред, отличных от общедоступного облака США, имя среды (как определено в Azure Python SDK, например, AzureChinaCloud, AzureUSGovernment) или URL-адрес конечной точки обнаружения метаданных (необходимо для Azure Stack). Также может быть установлено через профиль файла учетных данных или переменную среды AZURE_CLOUD_ENVIRONMENT. | |
| custom_data - добавлен в 2.5 | Данные, предоставляемые виртуальной машине и используемые, например, cloud-init. | ||
| data_disks - добавлен в 2.4 | Описание списка дисков данных. | ||
| caching - добавлен в 2.4 |
| Тип кэширования диска данных. | |
| disk_size_gb - добавлен в 2.4 | Начальный размер диска в ГБ для пустых дисков данных. | ||
| lun - добавлен в 2.4 | Значение по умолчанию: 0 | Логический номер устройства для диска данных. | |
| managed_disk_type - добавлен в 2.4 |
| Тип управляемого диска данных. | |
| storage_account_name - добавлен в 2.4 | Имя существующего хранилища учетных данных, поддерживающего создание блобов VHD. Если не указано для новой виртуальной машины, будет создано новое хранилище учетных данных с именем <имя_вм>01, используя тип хранилища 'Standard_LRS'. | ||
| storage_blob_name - добавлен в 2.4 | Имя хранилища блоков, используемого для хранения образа операционной системы виртуальной машины. Если имя не указано, оно по умолчанию равно имени виртуальной машины + '.vhd'. Если вы предоставили имя, оно должно заканчиваться на '.vhd' | ||
| storage_container_name - добавлен в 2.4 | Значение по умолчанию: "vhds" | Имя контейнера для использования в хранилище учетных данных для хранения блоков VHD. Если имя не указано, будет создан контейнер по умолчанию. | |
| generalized boolean добавлен в 2.8 |
| Используйте со значением состояния present для обобщения машины. Установите в true, чтобы обобщить машину.Обратите внимание, что эта операция необратима. | |
| image - / обязательно | Определяет образ, используемый для создания виртуальной машины. Если строка, образ берется из пользовательского образа на основе имени. Если словарь с ключами publisher, offer, sku, и version, образ берется из образа с торговой площадки. ПРИМЕЧАНИЕ: установите image.version в latest, чтобы получить последнюю версию данного образа.Если словарь с ключами name и resource_group, образ берется из пользовательского образа на основе name и resource_group set. ПРИМЕЧАНИЕ: ключ resource_group является необязательным, и если он опущен, все образы в подписке будут искать по name. Поддержка пользовательских образов была добавлена в Ansible 2.5 | ||
| license_type - добавлено в 2.8 |
| Указывает, что используемый образ или диск были лицензированы локально. Этот элемент используется только для образов, содержащих операционную систему Windows Server. Примечание: для сброса этого значения необходимо установить его в строку 'None'. | |
| location - | Действительное расположение Azure. По умолчанию используется расположение группы ресурсов. | ||
| managed_disk_type - добавлено в 2.4 |
| Тип управляемого системного диска | |
| name - / обязательно | Имя виртуальной машины. | ||
| network_interface_names - | Список имён существующих сетевых интерфейсов для добавления к ВМ. Элемент может быть строкой с именем или идентификатором ресурса сетевого интерфейса. Элемент также может быть словарем, содержащим resource_group и name сетевого интерфейса.Если имя сетевого интерфейса не указано при создании ВМ, будет создан интерфейс по умолчанию. Для того, чтобы модуль создал новый сетевой интерфейс, должно существовать по крайней мере одно Виртуальная сеть с одной подсетью. псевдонимы: network_interfaces | ||
| open_ports - | Если сетевой интерфейс создаётся при создании ВМ, также будет создана группа безопасности. Для Linux-хостов в группу безопасности будет добавлено правило, разрешающее входящие TCP-соединения на стандартный порт SSH 22, а для Windows-хостов будут открыты порты 3389 и 5986. Переопределите значения по умолчанию, указав список портов. | ||
| os_disk_caching - |
| Тип кэширования системного диска. псевдонимы: disk_caching | |
| os_disk_name - добавлено в 2.8 | Имя системного диска | ||
| os_disk_size_gb - добавлено в 2.7 | Размер системного диска в ГБ. | ||
| os_type - |
| Базовый тип операционной системы. | |
| password - | Пароль пользователя Active Directory. Используйте при аутентификации с пользователем Active Directory, а не с принципалом службы. | ||
| plan - добавлено в 2.5 | Словарь, описывающий план выставления счетов третьей стороны для экземпляра. | ||
| name - / обязательно | имя плана выставления счетов | ||
| product - / обязательно | название продукта | ||
| promotion_code - | Дополнительный код скидки | ||
| publisher - / обязательно | Издатель, предлагающий план | ||
| profile строка | Профиль безопасности, найденный в файле ~/.azure/credentials. | ||
| public_ip_allocation_method - |
| Если при создании ВМ создаётся общедоступный IP-адрес (потому что сетевой интерфейс не был указан), определяет, остаётся ли общедоступный IP-адрес постоянно связанным с сетевым интерфейсом. Если установлено значение 'Динамический', общедоступный IP-адрес может измениться в любой момент перезагрузки или циклической подачи питания ВМ. Вариант Disabled был добавлен в Ansible 2.6.псевдонимы: public_ip_allocation | |
| remove_on_absent - | По умолчанию: ["all"] | При удалении ВМ с помощью состояния 'absent' также удаляются связанные ресурсы. Это может быть 'all' или 'all_autocreated' или список с любым из следующих: ['network_interfaces', 'virtual_storage', 'public_ips']. Для удаления всех ресурсов, на которые ссылается ВМ, используйте 'all'. Для удаления всех ресурсов, которые были автоматически созданы во время подготовки ВМ, используйте 'all_autocreated'. Любой другой ввод будет проигнорирован. | |
| resource_group - / обязательно | Имя группы ресурсов, содержащей виртуальную машину. | ||
| restarted логическое значение |
| Используйте со состоянием present для перезапуска работающей ВМ. | |
| secret строка | Секретный ключ клиента Azure. Используйте при аутентификации с принципалом службы. | ||
| short_hostname - | Внутреннее имя хоста. В Linux-ВМ это имя, возвращаемое командой `hostname`. При создании виртуальной машины short_hostname по умолчанию совпадает с именем. | ||
| ssh_password_enabled логическое значение |
| Если os_type равен Linux, установка ssh_password_enabled в значение false отключит аутентификацию по паролю SSH и потребует использование SSH-ключей. | |
| ssh_public_keys - | Для os_type Linux укажите список SSH-ключей. Каждый элемент списка должен быть словарем, содержащим два ключа: путь и key_data. Установите путь к стандартному расположению файлов authorized_keys. Например, на Enterprise Linux-хосте путь будет /home/<имя пользователя>/.ssh/authorized_keys. Установите key_data в фактическое значение открытого ключа. | ||
| started логическое значение |
| Используйте со состоянием present для запуска машины. Установите значение в false, чтобы машина была в состоянии 'остановлена'. | |
| state - |
| Утверждение состояния виртуальной машины. Состояние present проверит, существует ли машина с запрошенной конфигурацией. Если конфигурация существующей машины не соответствует, машина будет обновлена. Используйте опции started, allocated и restarted для изменения состояния питания машины.Состояние absent удалит виртуальную машину. | |
| storage_account_name - | Имя существующего хранилища, поддерживающего создание блобов VHD. Если для новой ВМ не указано, будет создано новое хранилище с именем <имя ВМ>01 с типом хранилища 'Standard_LRS'. псевдонимы: storage_account | ||
| storage_blob_name - | Имя хранилища, используемого для хранения образа системного диска ВМ. Если имя не указано, по умолчанию используется имя ВМ + '.vhd'. Если вы предоставляете имя, оно должно заканчиваться на '.vhd'. псевдонимы: storage_blob | ||
| storage_container_name - | По умолчанию: "vhds" | Имя контейнера для использования в хранилище для хранения блобов VHD. Если имя не указано, будет создан контейнер по умолчанию. псевдонимы: storage_container | |
| subnet_name - | При создании виртуальной машины, если имя сетевого интерфейса не указано, оно будет создано. Новый сетевой интерфейс будет назначен первому подсети, найденному в виртуальной сети. Используйте этот параметр для указания конкретной подсети. Если подсеть находится в другой группе ресурсов, укажите конкретную группу ресурсов с помощью virtual_network_resource_group. псевдонимы: subnet | ||
| subscription_id string | Ваш идентификатор подписки Azure. | ||
| tags dictionary | Словарь пар строка:строка, назначаемых в качестве метаданных объекту. Метаданные теги объекта будут обновлены с предоставленными значениями. Чтобы удалить теги, установите параметр append_tags в значение false. | ||
| tenant string | Идентификатор Azure-аренды. Используется при аутентификации с помощью сервисного принципала. | ||
| virtual_network_name - | При создании виртуальной машины, если имя сетевого интерфейса не указано, оно будет создано. Сетевой интерфейс будет назначен первой виртуальной сети, найденной в группе ресурсов. Используйте этот параметр для указания конкретной виртуальной сети. Если виртуальная сеть находится в другой группе ресурсов, укажите конкретную группу ресурсов с помощью virtual_network_resource_group. псевдонимы: virtual_network | ||
| virtual_network_resource_group - добавлен в 2.4 | При создании виртуальной машины, если необходимо использовать виртуальную сеть из другой группы ресурсов, используйте этот параметр для указания группы ресурсов, которую нужно использовать. | ||
| vm_identity - добавлен в 2.8 |
| Идентификатор виртуальной машины. | |
| vm_size - | Допустимое значение размера виртуальной машины Azure. Например, 'Standard_D4'. Список доступных значений зависит от подписки и расположения. Проверьте доступные значения для вашей подписки. Требуется при создании ВМ. | ||
| winrm - добавлен в 2.8 | Список конфигураций Windows Remote Management виртуальной машины. | ||
| certificate_store - | Указывает хранилище сертификатов на виртуальной машине, в которое должен быть добавлен сертификат. Указанное хранилище сертификатов неявно находится в учетной записи LocalMachine. | ||
| certificate_url - | Это URL-адрес сертификата, который был загружен в Key Vault как секрет. | ||
| protocol - / обязательно |
| Указывает протокол слушателя. | |
| source_vault - | Относительный URL хранилища ключей, содержащего сертификат. | ||
| zones список добавлен в 2.8 | Список зон доступности для вашей виртуальной машины. | ||
Примечания
Примечание
- Для аутентификации в 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. Также можно добавить дополнительные профили. Укажите профиль, передав profile или установив AZURE_PROFILE в среде.
См. также
См. также
- Авторизация с помощью Azure CLI
- Как выполнить аутентификацию, используя команду
az login.
Примеры
- name: Create VM with defaults
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm10
admin_username: chouseknecht
admin_password: <your password here>
image:
offer: CentOS
publisher: OpenLogic
sku: '7.1'
version: latest
- name: Create an availability set for managed disk vm
azure_rm_availabilityset:
name: avs-managed-disk
resource_group: myResourceGroup
platform_update_domain_count: 5
platform_fault_domain_count: 2
sku: Aligned
- name: Create a VM with managed disk
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: vm-managed-disk
admin_username: adminUser
availability_set: avs-managed-disk
managed_disk_type: Standard_LRS
image:
offer: CoreOS
publisher: CoreOS
sku: Stable
version: latest
vm_size: Standard_D4
- name: Create a VM with existing storage account and NIC
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm002
vm_size: Standard_D4
storage_account: testaccount001
admin_username: adminUser
ssh_public_keys:
- path: /home/adminUser/.ssh/authorized_keys
key_data: < insert yor ssh public key here... >
network_interfaces: testvm001
image:
offer: CentOS
publisher: OpenLogic
sku: '7.1'
version: latest
- name: Create a VM with OS and multiple data managed disks
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm001
vm_size: Standard_D4
managed_disk_type: Standard_LRS
admin_username: adminUser
ssh_public_keys:
- path: /home/adminUser/.ssh/authorized_keys
key_data: < insert yor ssh public key here... >
image:
offer: CoreOS
publisher: CoreOS
sku: Stable
version: latest
data_disks:
- lun: 0
disk_size_gb: 64
managed_disk_type: Standard_LRS
- lun: 1
disk_size_gb: 128
managed_disk_type: Premium_LRS
- name: Create a VM with OS and multiple data storage accounts
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm001
vm_size: Standard_DS1_v2
admin_username: adminUser
ssh_password_enabled: false
ssh_public_keys:
- path: /home/adminUser/.ssh/authorized_keys
key_data: < insert yor ssh public key here... >
network_interfaces: testvm001
storage_container: osdisk
storage_blob: osdisk.vhd
image:
offer: CoreOS
publisher: CoreOS
sku: Stable
version: latest
data_disks:
- lun: 0
disk_size_gb: 64
storage_container_name: datadisk1
storage_blob_name: datadisk1.vhd
- lun: 1
disk_size_gb: 128
storage_container_name: datadisk2
storage_blob_name: datadisk2.vhd
- name: Create a VM with a custom image
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm001
vm_size: Standard_DS1_v2
admin_username: adminUser
admin_password: password01
image: customimage001
- name: Create a VM with a custom image from a particular resource group
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm001
vm_size: Standard_DS1_v2
admin_username: adminUser
admin_password: password01
image:
name: customimage001
resource_group: myResourceGroup
- name: Create VM with spcified OS disk size
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: big-os-disk
admin_username: chouseknecht
admin_password: <your password here>
os_disk_size_gb: 512
image:
offer: CentOS
publisher: OpenLogic
sku: '7.1'
version: latest
- name: Create VM with OS and Plan, accepting the terms
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: f5-nva
admin_username: chouseknecht
admin_password: <your password here>
image:
publisher: f5-networks
offer: f5-big-ip-best
sku: f5-bigip-virtual-edition-200m-best-hourly
version: latest
plan:
name: f5-bigip-virtual-edition-200m-best-hourly
product: f5-big-ip-best
publisher: f5-networks
- name: Power Off
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm002
started: no
- name: Deallocate
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm002
allocated: no
- name: Power On
azure_rm_virtualmachine:
resource_group:
name: testvm002
- name: Restart
azure_rm_virtualmachine:
resource_group:
name: testvm002
restarted: yes
- name: Create a VM with an Availability Zone
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm001
vm_size: Standard_DS1_v2
admin_username: adminUser
admin_password: password01
image: customimage001
zones: [1]
- name: Remove a VM and all resources that were autocreated
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm002
remove_on_absent: all_autocreated
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие — поля, уникальные для этого модуля:
| Ключ | Возвращаемое | Описание | |
|---|---|---|---|
| azure_vm сложный | всегда | Информация о текущем состоянии объекта. Обратите внимание, что факты не являются частью зарегистрированного вывода, но доступны напрямую. | |
| properties - | | ||
| type - | | ||
| deleted_network_interfaces список | при удалении | Список удаленных сетевых интерфейсов. | |
| deleted_public_ips список | при удалении | Список удаленных имен общедоступных IP-адресов. | |
| deleted_vhd_uris список | при удалении | Список удаленных URIs виртуальных жестких дисков. | |
| powerstate строка | всегда | Указывает, если состояние — запущен, остановлен, деаллоцирован, обобщен | |
Статус
- Этот модуль не гарантирует обратную совместимость интерфейса. [предварительная версия]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Chris Houseknecht (@chouseknecht)
- Matt Davis (@nitzmahone)
- Christopher Perrin (@cperrin88)
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/azure_rm_virtualmachine_module.html