azure_rm_virtualmachine - Управление виртуальными машинами Azure.
Новая версия с 2.1.
- Обзор
- Требования (к хосту, на котором выполняется модуль)
- Параметры
- Примеры
- Возвращаемые значения
- Примечания
Обзор
- Создание, обновление, остановка и запуск виртуальной машины. Предоставьте существующую учетную запись хранения и сетевой интерфейс или позвольте модулю создать их для вас. Если вы не предоставите сетевой интерфейс, группа ресурсов должна содержать виртуальную сеть с как минимум одной подсетью.
- В настоящее время требуется образ, найденный в Azure Marketplace. Используйте модуль azure_rm_virtualmachineimage_facts для определения издателя, предложения, SKU и версии конкретного образа.
Требования (к хосту, на котором выполняется модуль)
- python >= 2.7
- azure >= 2.0.0
Параметры
| параметр | обязательно | значение по умолчанию | допустимые значения | комментарии | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ad_user | нет | Имя пользователя Active Directory. Используйте при аутентификации с пользователем Active Directory, а не с принципалом службы. | ||||||||||||||||||||||||||||||||||||||||||
| admin_password | нет | Пароль для имени пользователя администратора. Не требуется, если тип ОС — Linux, а аутентификация по паролю SSH отключена путем установки ssh_password_enabled в значение false. | ||||||||||||||||||||||||||||||||||||||||||
| admin_username | нет | Имя пользователя администратора, используемое для доступа к хосту после его создания. Требуется при создании виртуальной машины. | ||||||||||||||||||||||||||||||||||||||||||
| allocated | нет | True | Переключатель, контролирующий, выделена ли машина/свободна, полезен только при state='present'. | |||||||||||||||||||||||||||||||||||||||||
| append_tags | нет | True | Используется для управления тем, является ли поле тегов каноническим или просто добавляется к существующим тегам. При каноническом значении все теги, не найденные в параметре tags, будут удалены из метаданных объекта. | |||||||||||||||||||||||||||||||||||||||||
| client_id | нет | Идентификатор клиента Azure. Используйте при аутентификации с принципалом службы. | ||||||||||||||||||||||||||||||||||||||||||
| cloud_environment | нет | AzureCloud | Для облачных сред, отличных от общедоступного облака США, имя среды (определяется Azure Python SDK, например, AzureChinaCloud, AzureUSGovernment) или URL-адрес конечной точки обнаружения метаданных (требуется для Azure Stack). Также можно задать через профиль файла учетных данных или переменную среды AZURE_CLOUD_ENVIRONMENT. | |||||||||||||||||||||||||||||||||||||||||
| data_disks (добавлено в 2.4)
| нет | Описывает список дисков данных. |
||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||
| image | да | Словарь, описывающий образ из Marketplace, используемый для создания виртуальной машины. Будут содержать ключи: publisher, offer, sku и version. ПРИМЕЧАНИЕ: установите image.version в 'latest', чтобы получить последнюю версию данного образа. | ||||||||||||||||||||||||||||||||||||||||||
| location | нет | Допустимое расположение Azure. По умолчанию — расположение группы ресурсов. | ||||||||||||||||||||||||||||||||||||||||||
| managed_disk_type (добавлено в 2.4)
| нет |
| Тип управляемого системного диска. | |||||||||||||||||||||||||||||||||||||||||
| name | да | Имя виртуальной машины. | ||||||||||||||||||||||||||||||||||||||||||
| network_interface_names | нет | Список имен существующих сетевых интерфейсов, которые необходимо добавить к виртуальной машине. Если имя сетевого интерфейса не указано при создании виртуальной машины, будет создан интерфейс по умолчанию. Для создания сетевого интерфейса модулем должен существовать хотя бы один виртуальная сеть с одним подсетью. | ||||||||||||||||||||||||||||||||||||||||||
| open_ports | нет | Если при создании виртуальной машины создается сетевой интерфейс, также будет создана группа безопасности. Для хостов Linux правило добавится в группу безопасности, разрешая входящие TCP-соединения на стандартный порт SSH 22, а для хостов Windows порты 3389 и 5986 будут открыты. Переопределите значения портов по умолчанию, указав список портов. | ||||||||||||||||||||||||||||||||||||||||||
| os_disk_caching | нет | ReadOnly |
| Тип кеширования системного диска. псевдонимы: disk_caching | ||||||||||||||||||||||||||||||||||||||||
| os_type | нет | [u'Linux'] |
| Основной тип операционной системы. | ||||||||||||||||||||||||||||||||||||||||
| password | нет | Пароль пользователя Active Directory. Используйте при аутентификации с пользователем Active Directory, а не с принципалом службы. | ||||||||||||||||||||||||||||||||||||||||||
| profile | нет | Профиль безопасности, найденный в файле ~/.azure/credentials. | ||||||||||||||||||||||||||||||||||||||||||
| public_ip_allocation_method | нет | [u'Static'] |
| Если при создании виртуальной машины создается общедоступный IP-адрес (потому что сетевой интерфейс не был указан), определяется, остается ли общедоступный IP-адрес постоянно связанным с сетевым интерфейсом. Если установлено значение 'Dynamic', общедоступный IP-адрес может измениться в любое время при перезагрузке или выключении питания виртуальной машины. псевдонимы: public_ip_allocation | ||||||||||||||||||||||||||||||||||||||||
| remove_on_absent | нет | [u'all'] | При удалении виртуальной машины с помощью состояния 'absent', также удаляются связанные ресурсы Может быть 'all' или список с любым из следующих: ['network_interfaces', 'virtual_storage', 'public_ips'] Любой другой ввод будет проигнорирован | |||||||||||||||||||||||||||||||||||||||||
| resource_group | да | Имя группы ресурсов, содержащей виртуальную машину. | ||||||||||||||||||||||||||||||||||||||||||
| restarted | нет | Используйте со значением 'present', чтобы перезапустить работающую виртуальную машину. | ||||||||||||||||||||||||||||||||||||||||||
| secret | нет | Секретный ключ клиента Azure. Используйте при аутентификации с принципалом службы. | ||||||||||||||||||||||||||||||||||||||||||
| short_hostname | нет | Внутреннее имя, назначенное хосту. На виртуальной машине Linux это имя, возвращаемое командой `hostname`. При создании виртуальной машины short_hostname по умолчанию совпадает с name. | ||||||||||||||||||||||||||||||||||||||||||
| ssh_password_enabled | нет | True | При 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 | нет | True | Используйте со значением 'present', чтобы запустить машину. Установите в значение false, чтобы машина была 'остановлена'. | |||||||||||||||||||||||||||||||||||||||||
| state | нет | present |
| Утверждение состояния виртуальной машины. Состояние 'present' проверит, существует ли машина с запрошенной конфигурацией. Если конфигурация существующей машины не соответствует, машина будет обновлена. Используйте параметры started, allocated и restarted, чтобы изменить состояние питания машины. Состояние 'absent' удалит виртуальную машину. | ||||||||||||||||||||||||||||||||||||||||
| storage_account_name | нет | Имя существующей учетной записи хранения, которая поддерживает создание блобов VHD. Если для новой виртуальной машины не указано, будет создана новая учетная запись хранения с именем <имя_ВМ>01, используя тип хранения 'Standard_LRS'. | ||||||||||||||||||||||||||||||||||||||||||
| storage_blob_name | нет | Имя хранилища BLOB, используемого для хранения образа операционной системы виртуальной машины. Если имя не указано, используется имя виртуальной машины + '.vhd'. Если вы указываете имя, оно должно заканчиваться на '.vhd'. псевдонимы: storage_blob | ||||||||||||||||||||||||||||||||||||||||||
| storage_container_name | нет | vhds | Имя контейнера для использования в учетной записи хранения для хранения блобов VHD. Если имя не указано, будет создан контейнер по умолчанию. | |||||||||||||||||||||||||||||||||||||||||
| subnet_name | нет | При создании виртуальной машины, если имя сетевого интерфейса не указано, будет создан интерфейс. Новый сетевой интерфейс будет назначен первой подсети, найденной в виртуальной сети. Используйте этот параметр, чтобы указать конкретную подсеть. псевдонимы: subnet | ||||||||||||||||||||||||||||||||||||||||||
| subscription_id | нет | Ваш идентификатор подписки Azure. | ||||||||||||||||||||||||||||||||||||||||||
| tags | нет | Словарь пар строка:строка для назначения метаданных объекту. Метаданные теги объекта будут обновлены любыми предоставленными значениями. Для удаления тегов установите параметр append_tags в false. | ||||||||||||||||||||||||||||||||||||||||||
| tenant | нет | Идентификатор Azure-аренды. Используйте при аутентификации с принципалом службы. | ||||||||||||||||||||||||||||||||||||||||||
| virtual_network_name | нет | При создании виртуальной машины, если имя сетевого интерфейса не указано, будет создан интерфейс. Новый сетевой интерфейс будет назначен первой виртуальной сети, найденной в группе ресурсов. Используйте этот параметр, чтобы указать конкретную виртуальную сеть вместо этого. псевдонимы: virtual_network | ||||||||||||||||||||||||||||||||||||||||||
| virtual_network_resource_group (добавлено в 2.4)
| нет | При создании виртуальной машины, если необходимо использовать определённую виртуальную сеть из другой группы ресурсов, используйте этот параметр для указания группы ресурсов. | ||
| vm_size | нет | Значение размера виртуальной машины Azure. Например, 'Standard_D4'. Список вариантов зависит от подписки и расположения. Проверьте доступные варианты для вашей подписки. Требуется при создании виртуальной машины. |
Примеры
- 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: 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 | Информация о текущем состоянии объекта. Обратите внимание, что данные не являются частью зарегистрированного вывода, но доступны напрямую. | всегда | сложный | ||||||||||||||||
| содержит: |
| ||||||||||||||||||
| deleted_network_interfaces | Список удалённых сетевых адаптеров. | при удалении | список | ||||||||||||||||
| deleted_public_ips | Список удалённых имен общедоступных IP-адресов. | при удалении | список | ||||||||||||||||
| deleted_vhd_uris | Список удалённых URI виртуальных жёстких дисков. | при удалении | список | ||||||||||||||||
| powerstate | Указывает, находится ли состояние в режиме работы, остановки или освобождения. | всегда | строка | ||||||||||||||||
Примечания
Примечание
- Для аутентификации с 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 в переменных окружения.
Статус
Этот модуль помечен как предварительная версия, что означает, что гарантии обратной совместимости интерфейса нет.
Для получения помощи в разработке модулей, если вас это интересует, пожалуйста, ознакомьтесь с Информацией о сообществе и участии, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/azure_rm_virtualmachine_module.html