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
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| ad_user | По умолчанию: Нет | Имя пользователя Active Directory. Используется при аутентификации пользователем Active Directory, а не служебным принципалом. | |
| admin_password | Пароль для имени пользователя администратора. Не требуется, если тип ОС — Linux и аутентификация по паролю SSH отключена, установив ssh_password_enabled в false. | ||
| admin_username | Имя пользователя администратора, используемое для доступа к хосту после его создания. Требуется при создании виртуальной машины. | ||
| allocated | По умолчанию: да | Переключатель, управляющий выделением/освобождением машины, полезен только при state='present'. | |
| api_profile (добавлен в 2.5) |
| Выбирает профиль API для взаимодействия с Azure-сервисами. Значение по умолчанию latest подходит для общедоступных облаков; будущие значения позволят использовать с Azure Stack. | |
| append_tags | По умолчанию: да | Управляет тем, является ли поле тегов каноническим или оно просто добавляется к существующим тегам. При каноническом формате любые теги, отсутствующие в параметре тегов, будут удалены из метаданных объекта. | |
| auth_source (добавлен в 2.5) |
| Управляет источником учетных данных для аутентификации. auto будет следовать по умолчанию приоритету параметров модуля -> переменные среды -> профиль по умолчанию в файле учетных данных ~/.azure/credentials.При установке в значение cli, учетные данные будут получены из профиля Azure CLI по умолчанию.Также можно задать через переменную среды ANSIBLE_AZURE_AUTH_SOURCE. | |
| 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) | По умолчанию: Нет | Описание списка дисков данных. | |
| managed_disk_type (добавлен в 2.4) |
| Тип управляемого диска данных | |
| disk_size_gb (добавлен в 2.4) | Начальный размер диска в ГБ для пустых дисков данных | ||
| storage_container_name (добавлен в 2.4) | По умолчанию: vhds | Имя контейнера в хранилище для хранения блобов VHD. Если имя не указано, будет создан контейнер по умолчанию. | |
| caching (добавлен в 2.4) |
| Тип кэширования диска данных. | |
| storage_blob_name (добавлен в 2.4) | Имя хранилища BLOB, используемого для хранения образа диска ОС виртуальной машины. Если имя не указано, используется имя виртуальной машины + '.vhd'. Если вы предоставляете имя, оно должно заканчиваться на '.vhd' | ||
| storage_account_name (добавлен в 2.4) | Имя существующего хранилища Azure, поддерживающего создание блобов VHD. Если для новой виртуальной машины не указано, будет создано новое хранилище с именем <имя_вм>01 с типом хранилища 'Standard_LRS'. | ||
| lun (добавлен в 2.4) | По умолчанию: 0 | Логический номер устройства (LUN) для диска данных | |
| image обязательно | Указывает образ, используемый для создания виртуальной машины. Если строка, образ извлекается из настраиваемого образа на основе имени. Если словарь с ключами publisher, offer, sku, и version, образ извлекается из образа из Marketplace. ПРИМЕЧАНИЕ: установите image.version в latest для получения последней версии данного образа.Если словарь с ключами name и resource_group, образ извлекается из пользовательского образа на основе name и resource_group. ПРИМЕЧАНИЕ: ключ resource_group необязателен, и если он опущен, все образы в подписке будут проверяться по name.Поддержка настраиваемых образов добавлена в Ansible 2.5 | ||
| location | Действительное расположение Azure. По умолчанию — расположение группы ресурсов. | ||
| managed_disk_type (добавлен в 2.4) |
| Тип управляемого системного диска | |
| name обязательно | Имя виртуальной машины. | ||
| network_interface_names | Список имен существующих сетевых адаптеров, которые нужно добавить к виртуальной машине. Если имя сетевого адаптера не указано при создании виртуальной машины, будет создан адаптер по умолчанию. Для того чтобы модуль смог создать сетевой адаптер, должно существовать как минимум одно виртуальное сетевое окружение с одним подсетью. | ||
| open_ports | Если при создании виртуальной машины создается сетевой адаптер, то также будет создана группа безопасности. Для Linux-хостов правило будет добавлено в группу безопасности, позволяющее входящие TCP-соединения на стандартный порт SSH 22, а для Windows-хостов будут открыты порты 3389 и 5986. Измените открытые порты по умолчанию, указав список портов. | ||
| os_disk_caching |
| Тип кэширования диска ОС. алиасы: disk_caching | |
| os_type |
[u'Linux'] | Базовый тип операционной системы. | |
| password | По умолчанию: Нет | Пароль пользователя Active Directory. Используется при аутентификации пользователем Active Directory, а не служебным принципалом. | |
| plan (добавлен в 2.5) | Словарь, описывающий план оплаты стороннего поставщика для экземпляра | ||
| publisher обязательно | Издатель, предлагающий план | ||
| product обязательно | Название продукта | ||
| promotion_code | Дополнительный промокод | ||
| name обязательно | Название плана оплаты | ||
| profile | По умолчанию: Нет | Профиль безопасности, найденный в файле ~/.azure/credentials. | |
| public_ip_allocation_method |
[u'Статический'] | Если общедоступный IP-адрес создается при создании ВМ (потому что сетевой интерфейс не был предоставлен), определяет, остается ли общедоступный IP-адрес постоянно связанным с сетевым интерфейсом. Если установлено значение «Динамический», общедоступный IP-адрес может измениться в любой момент перезагрузки или циклической смены питания ВМ. псевдонимы: public_ip_allocation | |
| remove_on_absent | По умолчанию: [u'all'] | При удалении ВМ с состоянием «absent», также удаляются связанные ресурсы Может быть 'all' или список с любым из следующих элементов: ['network_interfaces', 'virtual_storage', 'public_ips'] Любой другой ввод будет проигнорирован | |
| resource_group обязательно | Имя группы ресурсов, содержащей виртуальную машину. | ||
| restarted | По умолчанию: no | Используйте со значением 'present', чтобы перезапустить работающую ВМ. | |
| secret | По умолчанию: None | Секретный ключ клиента Azure. Используйте при аутентификации с помощью принципала службы. | |
| short_hostname | Внутреннее имя хоста. В случае с виртуальной машиной Linux это имя, возвращаемое командой `hostname`. При создании виртуальной машины short_hostname по умолчанию устанавливается равным name. | ||
| ssh_password_enabled | По умолчанию: yes | Если os_type равен Linux, установка ssh_password_enabled в false отключит аутентификацию по паролю SSH и потребует использования ключей SSH. | |
| ssh_public_keys | Для os_type Linux предоставьте список ключей SSH. Каждый элемент списка должен быть словарем, содержащим два ключа: path и key_data. Установите путь к стандартному расположению файлов authorized_keys. Например, на Enterprise Linux хосте путь будет /home/<имя пользователя администратора>/.ssh/authorized_keys. Установите key_data в фактическое значение открытого ключа. | ||
| started | По умолчанию: yes | Используйте со значением 'present', чтобы запустить машину. Установите значение в false, чтобы машина была 'остановлена'. | |
| state |
| Утвердите состояние виртуальной машины. Состояние 'present' проверит, что машина существует с запрошенной конфигурацией. Если конфигурация существующей машины не совпадает, машина будет обновлена. Используйте параметры started, allocated и restarted для изменения состояния питания машины. Состояние 'absent' удалит виртуальную машину. | |
| storage_account_name | Имя существующего хранилища, поддерживающего создание блобов VHD. Если не указано для новой ВМ, будет создано новое хранилище с именем <имя_ВМ>01 с типом хранилища 'Standard_LRS'. | ||
| storage_blob_name | Имя хранилища блоков, используемого для хранения образа операционной системы ВМ. Если имя не указано, по умолчанию используется имя ВМ + '.vhd'. Если вы предоставляете имя, оно должно заканчиваться на '.vhd'. псевдонимы: storage_blob | ||
| storage_container_name | По умолчанию: vhds | Имя контейнера для использования в хранилище для хранения блоков VHD. Если имя не указано, будет создан контейнер по умолчанию. | |
| subnet_name | При создании виртуальной машины, если имя сетевого интерфейса не указано, оно будет создано. Новый сетевой интерфейс будет назначен первому подсети, найденному в виртуальной сети. Используйте этот параметр, чтобы указать конкретную подсеть вместо этого. псевдонимы: subnet | ||
| subscription_id | По умолчанию: None | Ваш идентификатор подписки Azure. | |
| tags | По умолчанию: None | Словарь пар «строка:строка» для назначения метаданных объекту. Метаданные теги объекта будут обновлены с любыми предоставленными значениями. Для удаления тегов установите параметр append_tags в false. | |
| tenant | По умолчанию: None | Идентификатор клиента Azure. Используйте при аутентификации с помощью принципала службы. | |
| virtual_network_name | При создании виртуальной машины, если имя сетевого интерфейса не указано, оно будет создано. Новый сетевой интерфейс будет назначен первой виртуальной сети, найденной в группе ресурсов. Используйте этот параметр, чтобы указать конкретную виртуальную сеть вместо этого. псевдонимы: 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. Также возможно добавление дополнительных профилей. Укажите профиль, передав profile или установив 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 a VM with managed disk
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
- 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: 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 сложный | всегда | Данные о текущем состоянии объекта. Обратите внимание, что данные не являются частью зарегистрированного вывода, но доступны непосредственно. | |
| type | | ||
| properties | | ||
| deleted_network_interfaces список | при удалении | Список удаленных сетевых адаптеров. | |
| deleted_public_ips список | при удалении | Список имён удалённых общедоступных IP-адресов. | |
| deleted_vhd_uris список | при удалении | Список удалённых URI виртуальных жёстких дисков. | |
| powerstate строка | всегда | Указывает, если состояние выполняется, остановлено, деаллоцировано | |
Статус
Этот модуль помечен как предварительный, что означает, что он не гарантирует обратную совместимость интерфейса.
Автор
- 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.5/modules/azure_rm_virtualmachine_module.html