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, а не службой-принципалом. | ||
| adfs_authority_url (добавлен в 2.6) | По умолчанию: null | URL авторизации Azure AD. Используйте при аутентификации с именем пользователя/паролем и собственной авторизацией ADFS. | |
| admin_password | Пароль для имени пользователя администратора. Не требуется, если os_type — Linux, и аутентификация по паролю SSH отключена, установив ssh_password_enabled в false. | ||
| admin_username | Имя пользователя администратора для доступа к хосту после его создания. Требуется при создании виртуальной машины. | ||
| allocated bool |
| Переключатель, определяющий, выделена ли машина/освобождена ли она, полезно только с параметром state='present'. | |
| api_profile (добавлен в 2.5) | По умолчанию: "latest" | Выбирает профиль API для взаимодействия с Azure-сервисами. Значение по умолчанию latest подходит для общедоступных облаков; будущие значения позволят использовать Azure Stack. | |
| append_tags bool |
| Управляет тем, является ли поле тегов каноническим или оно просто добавляется к существующим тегам. При каноническом поле все теги, отсутствующие в параметре tags, будут удалены из метаданных объекта. | |
| 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) | Описание списка дисков данных. | ||
| lun (добавлен в 2.4) | По умолчанию: 0 | Логический номер устройства для диска данных | |
| disk_size_gb (добавлен в 2.4) | Начальный размер диска в ГБ для пустых дисков данных | ||
| managed_disk_type (добавлен в 2.4) |
| Тип управляемого диска данных | |
| storage_account_name (добавлен в 2.4) | Имя существующего хранилища, поддерживающего создание блобов VHD. Если не указано для новой виртуальной машины, будет создано новое хранилище с именем <имя_вм>01 с типом хранения 'Standard_LRS'. | ||
| storage_container_name (добавлен в 2.4) | По умолчанию: "vhds" | Имя контейнера для хранения блобов VHD в пределах хранилища. Если имя не указано, будет создан контейнер по умолчанию. | |
| storage_blob_name (добавлен в 2.4) | Имя хранилища блоков, используемых для хранения образа операционной системы виртуальной машины. Если имя не указано, по умолчанию используется имя виртуальной машины + '.vhd'. Если вы предоставите имя, оно должно оканчиваться на '.vhd' | ||
| caching (добавлен в 2.4) |
| Тип кэширования диска данных. | |
| 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 | Список имен существующих сетевых интерфейсов для добавления к виртуальной машине. Если имя сетевого интерфейса не указано при создании виртуальной машины, будет создан интерфейс по умолчанию. Для создания сетевого интерфейса модулем должен существовать по крайней мере одна виртуальная сеть с одним подсетью. псевдонимы: network_interfaces | ||
| open_ports | Если при создании виртуальной машины создается сетевой интерфейс, также будет создана группа безопасности. Для Linux-хостов будет добавлено правило, разрешающее входящие TCP-соединения на стандартный порт SSH 22, а для Windows-хостов будут открыты порты 3389 и 5986. Переопределите значения портов по умолчанию, указав список портов. | ||
| os_disk_caching |
| Тип кэширования диска операционной системы. псевдонимы: disk_caching | |
| os_type |
| Базовый тип операционной системы. | |
| password | Пароль пользователя Active Directory. Используйте при аутентификации пользователем Active Directory, а не службой-принципалом. | ||
| plan (добавлен в 2.5) | Словарь, описывающий план оплаты стороннего поставщика для экземпляра. | ||
| name обязательно | Имя плана оплаты. | ||
| product обязательно | Имя продукта. | ||
| publisher обязательно | Издатель, предлагающий план. | ||
| promotion_code | Дополнительный код для промоакции | ||
| profile | Профиль безопасности, найденный в файле ~/.azure/credentials. | ||
| public_ip_allocation_method |
| Если при создании виртуальной машины (потому что сетевой интерфейс не был предоставлен) создается общедоступный IP-адрес, это определяет, останется ли общедоступный IP-адрес постоянно связанным с сетевым интерфейсом. Если установлено значение «Динамический», общедоступный IP-адрес может измениться в любой момент перезагрузки или отключения питания виртуальной машины. Вариант Disabled был добавлен в Ansible 2.6.Псевдонимы: public_ip_allocation | |
| remove_on_absent | По умолчанию: ["все"] | При удалении виртуальной машины с помощью состояния «отсутствует», также удаляются связанные ресурсы Может быть «все» или список с любым из следующих: ['сетевые_интерфейсы', 'виртуальное_хранилище', 'общедоступные_IP'] Любой другой ввод будет проигнорирован | |
| resource_group обязательно | Имя группы ресурсов, содержащей виртуальную машину. | ||
| restarted bool |
| Используйте со значением «present», чтобы перезапустить работающую виртуальную машину. | |
| secret | Секретный ключ клиента Azure. Используйте при аутентификации с помощью сервисного принципала. | ||
| short_hostname | Внутреннее имя, назначенное хосту. В Linux-машине это имя, возвращаемое командой `hostname`. При создании виртуальной машины short_hostname по умолчанию совпадает с именем. | ||
| ssh_password_enabled bool |
| При os_type Linux установка ssh_password_enabled в значение false отключит аутентификацию по паролю SSH и потребует использование ключей SSH. | |
| ssh_public_keys | Для os_type Linux укажите список ключей SSH. Каждый элемент списка должен быть словарем, содержащим два ключа: путь и данные_ключа. Установите путь к расположению файла authorized_keys по умолчанию. Например, на Enterprise Linux хосте путь будет /home/<имя_пользователя_админа>/.ssh/authorized_keys. Установите данные_ключа в фактическое значение открытого ключа. | ||
| started bool |
| Используйте со значением «present», чтобы запустить машину. Установите в значение false, чтобы машина была «остановлена». | |
| state |
| Утверждение состояния виртуальной машины. Состояние «present» проверит, существует ли машина с запрошенной конфигурацией. Если конфигурация существующей машины не совпадает, машина будет обновлена. Используйте опции started, allocated и restarted для изменения состояния питания машины. Состояние «отсутствует» удалит виртуальную машину. | |
| 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 | При создании виртуальной машины, если имя сетевого интерфейса не указано, оно будет создано. Новый сетевой интерфейс будет назначен первому подсети в виртуальной сети. Используйте этот параметр для указания конкретной подсети. Псевдонимы: 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'. Список вариантов зависит от подписки и местоположения. Проверьте вашу подписку на доступные варианты. Требуется при создании виртуальной машины. | ||
Примечания
Примечание
- Для аутентификации с 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 complex | всегда | Данные о текущем состоянии объекта. Обратите внимание, что данные не являются частью зарегистрированного вывода, а доступны непосредственно. | |
| properties | | ||
| type | | ||
| deleted_network_interfaces список | при удалении | Список удаленных сетевых интерфейсов. | |
| deleted_public_ips список | при удалении | Список удаленных имен общедоступных IP-адресов. | |
| deleted_vhd_uris список | при удалении | Список удаленных URI виртуальных жестких дисков. | |
| powerstate строка | всегда | Указывает, если состояние запущено, остановлено, отвязано | |
Статус
Этот модуль помечен как предварительный просмотр, что означает, что он не гарантирует обратную совместимость интерфейса.
Техническое обслуживание
Этот модуль помечен как сертифицированный, что означает, что он поддерживается партнером Ansible. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.
Список других модулей, также поддерживаемых партнером 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.6/modules/azure_rm_virtualmachine_module.html