Spec-Zone.ru › Ansible 2.8

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
    Варианты:
  • auto
  • cli
  • credential_file
  • env
  • msi
Управляет источником учетных данных для аутентификации.
Если не указано, будет использована переменная среды 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
    Варианты:
  • ignore
  • validate
Управляет поведением проверки сертификатов для конечных точек 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
    Варианты:
  • ReadOnly ←
  • ReadWrite
Тип кэширования диска данных.
disk_size_gb
-
добавлен в 2.4
Начальный размер диска в ГБ для пустых дисков данных.
lun
-
добавлен в 2.4
Значение по умолчанию:
0
Логический номер устройства для диска данных.
managed_disk_type
-
добавлен в 2.4
    Варианты:
  • Standard_LRS
  • StandardSSD_LRS
  • Premium_LRS
Тип управляемого диска данных.
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
  • Windows_Client
Указывает, что используемый образ или диск были лицензированы локально. Этот элемент используется только для образов, содержащих операционную систему Windows Server.
Примечание: для сброса этого значения необходимо установить его в строку 'None'.
location
-
Действительное расположение Azure. По умолчанию используется расположение группы ресурсов.
managed_disk_type
-
добавлено в 2.4
    Варианты:
  • Standard_LRS
  • StandardSSD_LRS
  • Premium_LRS
Тип управляемого системного диска
name
- / обязательно
Имя виртуальной машины.
network_interface_names
-
Список имён существующих сетевых интерфейсов для добавления к ВМ.
Элемент может быть строкой с именем или идентификатором ресурса сетевого интерфейса.
Элемент также может быть словарем, содержащим resource_group и name сетевого интерфейса.
Если имя сетевого интерфейса не указано при создании ВМ, будет создан интерфейс по умолчанию.
Для того, чтобы модуль создал новый сетевой интерфейс, должно существовать по крайней мере одно Виртуальная сеть с одной подсетью.

псевдонимы: network_interfaces
open_ports
-
Если сетевой интерфейс создаётся при создании ВМ, также будет создана группа безопасности. Для Linux-хостов в группу безопасности будет добавлено правило, разрешающее входящие TCP-соединения на стандартный порт SSH 22, а для Windows-хостов будут открыты порты 3389 и 5986. Переопределите значения по умолчанию, указав список портов.
os_disk_caching
-
    Варианты:
  • Только чтение ←
  • ReadWrite
Тип кэширования системного диска.

псевдонимы: disk_caching
os_disk_name
-
добавлено в 2.8
Имя системного диска
os_disk_size_gb
-
добавлено в 2.7
Размер системного диска в ГБ.
os_type
-
    Варианты:
  • Windows
  • Linux ←
Базовый тип операционной системы.
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
логическое значение
    Варианты:
  • no
  • yes
Используйте со состоянием present для перезапуска работающей ВМ.
secret
строка
Секретный ключ клиента Azure. Используйте при аутентификации с принципалом службы.
short_hostname
-
Внутреннее имя хоста. В Linux-ВМ это имя, возвращаемое командой `hostname`. При создании виртуальной машины short_hostname по умолчанию совпадает с именем.
ssh_password_enabled
логическое значение
    Варианты:
  • no
  • yes ←
Если 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
логическое значение
    Варианты:
  • no
  • yes ←
Используйте со состоянием present для запуска машины. Установите значение в false, чтобы машина была в состоянии 'остановлена'.
state
-
    Варианты:
  • absent
  • present ←
Утверждение состояния виртуальной машины.
Состояние 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
    Варианты:
  • SystemAssigned
Идентификатор виртуальной машины.
vm_size
-
Допустимое значение размера виртуальной машины Azure. Например, 'Standard_D4'. Список доступных значений зависит от подписки и расположения. Проверьте доступные значения для вашей подписки. Требуется при создании ВМ.
winrm
-
добавлен в 2.8
Список конфигураций Windows Remote Management виртуальной машины.
certificate_store
-
Указывает хранилище сертификатов на виртуальной машине, в которое должен быть добавлен сертификат. Указанное хранилище сертификатов неявно находится в учетной записи LocalMachine.
certificate_url
-
Это URL-адрес сертификата, который был загружен в Key Vault как секрет.
protocol
- / обязательно
    Варианты:
  • http
  • https
Указывает протокол слушателя.
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API