azure_rm_virtualmachine – Управление виртуальными машинами Azure.
Новая в версии 2.1.
Обзор
- Создание, обновление, остановка и запуск виртуальной машины. Используйте существующий хранилище данных и сетевой интерфейс или позвольте модулю создать их для вас. Если вы не хотите указывать сетевой интерфейс, в группе ресурсов должна быть виртуальная сеть с как минимум одной подсетью.
- До Ansible 2.5, для этого требовалось изображение, найденное в Azure Marketplace, которое можно обнаружить с помощью azure_rm_virtualmachineimage_facts. В Ansible 2.5 и более поздних версиях можно использовать также пользовательские образы, см. примеры для получения более подробной информации.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.7
- azure >= 2.0.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| accept_terms boolean добавлено в 2.7 |
| Принимать условия для изображений рынка, которые это требуют Только администраторы службы Azure/администраторы учетных записей могут приобретать изображения из рынка | |
| ad_user - | Имя пользователя Active Directory. Используйте при аутентификации с пользователем Active Directory, а не с принципалом службы. | ||
| adfs_authority_url - добавлено в 2.6 | По умолчанию: null | URL-адрес службы AD Azure. Используйте при аутентификации с именем пользователя/паролем и собственной службой 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-блобов. Если имя не указано, будет создан контейнер по умолчанию. | |
| image - / обязательно | Указывает образ, используемый для создания виртуальной машины. Если строка, образ получен из настраиваемого образа на основе имени. Если словарь с ключами publisher, offer, sku, и version, образ получен из изображения рынка. ПРИМЕЧАНИЕ: установите image.version в latest для получения последней версии данного изображения.Если словарь с ключами name и resource_group, образ получен из настраиваемого образа на основе name и resource_group. ПРИМЕЧАНИЕ: ключ resource_group необязателен, и если он опущен, все изображения в подписке будут искать по name.
Поддержка настраиваемых образов была добавлена в Ansible 2.5. | ||
| location - | Действительное расположение Azure. По умолчанию используется расположение группы ресурсов. | ||
| managed_disk_type - добавлено в 2.4 |
| Тип управляемого диска операционной системы. | |
| имя - / обязательно | Имя виртуальной машины. | ||
| network_interface_names - | Список существующих имён сетевых интерфейсов для добавления в ВМ. Элемент может быть строкой с именем или идентификатором ресурса сетевого интерфейса. Элемент также может быть словарем, содержащим resource_group и name сетевого интерфейса.Если имя сетевого интерфейса не указано при создании ВМ, будет создан интерфейс по умолчанию. Для того, чтобы модуль создал новый сетевой интерфейс, должен существовать хотя бы один виртуальная сеть с одним подсетью. псевдонимы: network_interfaces | ||
| open_ports - | Если сетевой интерфейс создаётся при создании ВМ, также будет создана группа безопасности. Для хостов Linux будет добавлено правило в группу безопасности, разрешающее входящие TCP-соединения на стандартный порт SSH 22, а для хостов Windows будут открыты порты 3389 и 5986. Переопределите значения портов по умолчанию, указав список портов. | ||
| os_disk_caching - |
| Тип кэширования диска ОС. псевдонимы: disk_caching | |
| os_disk_size_gb - добавлено в 2.7 | Размер диска ОС в ГБ. | ||
| os_type - |
| Базовый тип операционной системы. | |
| password - | Пароль пользователя Active Directory. Используется при аутентификации с пользователем Active Directory, а не с сервисным принципалом. | ||
| plan - добавлено в 2.5 | Словарь, описывающий план платёжных услуг стороннего поставщика для экземпляра | ||
| имя - / обязательно | имя плана платёжных услуг | ||
| product - / обязательно | наименование продукта | ||
| promotion_code - | необязательный промокод | ||
| publisher - / обязательно | Издатель, предлагающий план | ||
| profile - | Профиль безопасности, найденный в файле ~/.azure/credentials. | ||
| public_ip_allocation_method - |
| Если при создании ВМ создаётся общедоступный IP-адрес (потому что сетевой интерфейс не был предоставлен), это определяет, останется ли общедоступный IP-адрес постоянно связанным с сетевым интерфейсом. Если установлено значение 'Dynamic', общедоступный IP-адрес может измениться в любой момент перезагрузки или выключения питания ВМ. Вариант Disabled был добавлен в Ansible 2.6.псевдонимы: public_ip_allocation | |
| remove_on_absent - | По умолчанию: ["all"] | При удалении ВМ с помощью состояния 'absent', также удаляются связанные ресурсы Может быть 'all' или список со следующими значениями: ['network_interfaces', 'virtual_storage', 'public_ips'] Любые другие входные данные будут проигнорированы | |
| resource_group - / обязательно | Имя группы ресурсов, содержащей виртуальную машину. | ||
| restarted boolean |
| Используется со состоянием 'present' для перезагрузки работающей ВМ. | |
| secret - | Секретный ключ клиента Azure. Используется при аутентификации с помощью сервисного принципала. | ||
| short_hostname - | Внутреннее имя хоста. В ВМ Linux это имя, возвращаемое командой `hostname`. При создании виртуальной машины short_hostname по умолчанию устанавливается равным имени. | ||
| ssh_password_enabled boolean |
| Если 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 boolean |
| Используется со состоянием 'present' для запуска машины. Установите в значение false, чтобы машина была 'остановлена'. | |
| state - |
| Утверждение состояния виртуальной машины. Состояние 'present' проверит, существует ли машина с требуемой конфигурацией. Если конфигурация существующей машины не соответствует, машина будет обновлена. Используйте параметры started, allocated и restarted для изменения состояния питания машины. Состояние 'absent' удалит виртуальную машину. | |
| storage_account_name - | Имя существующей учетной записи хранилища, поддерживающей создание блобов VHD. Если не указано для новой ВМ, будет создана новая учетная запись хранилища с именем <имя_вм>01 с типом хранилища 'Standard_LRS'. псевдонимы: storage_account | ||
| storage_blob_name - | Имя хранилища BLOB, используемого для хранения образа диска ОС ВМ. Если имя не указано, по умолчанию используется имя ВМ + '.vhd'. Если вы укажете имя, оно должно оканчиваться на '.vhd' псевдонимы: storage_blob | ||
| storage_container_name - | По умолчанию: "vhds" | Имя контейнера для использования в учетной записи хранилища для хранения блобов VHD. Если имя не указано, будет создан контейнер по умолчанию. псевдонимы: storage_container | |
| subnet_name - | При создании виртуальной машины, если имя сетевого интерфейса не указано, оно будет создано. Новый сетевой интерфейс будет назначен первой найденной подсети в виртуальной сети. Используйте этот параметр для указания определенной подсети. Если подсеть находится в другой группе ресурсов, укажите конкретную группу ресурсов с помощью virtual_network_resource_group. псевдонимы: subnet | ||
| subscription_id - | Ваш идентификатор подписки Azure. | ||
| tags - | Словарь пар строка:строка для назначения метаданных объекту. Метаданные теги объекта будут обновлены любыми предоставленными значениями. Для удаления тегов установите опцию append_tags в false. | ||
| tenant - | Идентификатор клиента Azure. Используется при аутентификации с помощью сервисного принципала. | ||
| virtual_network_name - | При создании виртуальной машины, если имя сетевого интерфейса не указано, будет создано новое. Сетевой интерфейс будет назначен первой виртуальной сети, найденной в группе ресурсов. Используйте этот параметр для указания конкретной виртуальной сети. Если виртуальная сеть находится в другой группе ресурсов, укажите конкретную группу ресурсов с помощью virtual_network_resource_group. псевдонимы: virtual_network | ||
| virtual_network_resource_group - добавлено в 2.4 | При создании виртуальной машины, если необходимо использовать конкретную виртуальную сеть из другой группы ресурсов, используйте этот параметр для указания группы ресурсов. | ||
| vm_size - | Значение размера виртуальной машины Azure. Например, 'Standard_D4'. Список доступных значений зависит от подписки и расположения. Проверьте доступные варианты для вашей подписки. Необходимо при создании виртуальной машины. | ||
Примечания
Примечание
- Для аутентификации в Azure можно передать параметры, установить переменные среды или использовать профиль, сохраненный в ~/.azure/credentials. Аутентификация возможна с помощью управляющего принципа или пользователя 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 в среде.
Примеры
- name: Create VM with defaults
azure_rm_virtualmachine:
resource_group: Testing
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: Testing
platform_update_domain_count: 5
platform_fault_domain_count: 2
sku: Aligned
- name: Create a VM with managed disk
azure_rm_virtualmachine:
resource_group: Testing
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: Testing
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: Testing
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: Testing
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: Testing
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: Testing
name: testvm001
vm_size: Standard_DS1_v2
admin_username: adminUser
admin_password: password01
image:
name: customimage001
resource_group: Testing
- name: Create VM with spcified OS disk size
azure_rm_virtualmachine:
resource_group: Testing
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: Testing
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: Testing
name: testvm002
started: no
- name: Deallocate
azure_rm_virtualmachine:
resource_group: Testing
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: remove vm and all resources except public ips
azure_rm_virtualmachine:
resource_group: Testing
name: testvm002
state: absent
remove_on_absent:
- network_interfaces
- virtual_storage
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| azure_vm сложный | всегда | Данные о текущем состоянии объекта. Обратите внимание, что данные не являются частью зарегистрированного вывода, но доступны напрямую. | |
| properties - | | ||
| type - | | ||
| deleted_network_interfaces список | при удалении | Список удаленных сетевых адаптеров. | |
| deleted_public_ips список | при удалении | Список удаленных публичных IP-адресов. | |
| deleted_vhd_uris список | при удалении | Список удаленных URI виртуальных дисков. | |
| powerstate строка | всегда | Указывает, находится ли объект в состоянии выполнения, остановлен или деаллоцирован. | |
Статус
- Этот модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается партнером Ansible. [сертифицировано]
Авторы
- Chris Houseknecht (@chouseknecht)
- Matt Davis (@nitzmahone)
Подсказка
Если вы обнаружили какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/azure_rm_virtualmachine_module.html