Spec-Zone.ru › Ansible 2.7

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
    Варианты:
  • авто
  • 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
    Варианты:
  • validate
  • ignore
Контролирует поведение проверки сертификата для 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
  • 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-блобов. Если имя не указано, будет создан контейнер по умолчанию.
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
    Варианты:
  • Standard_LRS
  • Premium_LRS
Тип управляемого диска операционной системы.
имя
- / обязательно
Имя виртуальной машины.
network_interface_names
-
Список существующих имён сетевых интерфейсов для добавления в ВМ.
Элемент может быть строкой с именем или идентификатором ресурса сетевого интерфейса.
Элемент также может быть словарем, содержащим resource_group и name сетевого интерфейса.
Если имя сетевого интерфейса не указано при создании ВМ, будет создан интерфейс по умолчанию.
Для того, чтобы модуль создал новый сетевой интерфейс, должен существовать хотя бы один виртуальная сеть с одним подсетью.

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

псевдонимы: disk_caching
os_disk_size_gb
-
добавлено в 2.7
Размер диска ОС в ГБ.
os_type
-
    Вызовы:
  • Windows
  • Linux ←
Базовый тип операционной системы.
password
-
Пароль пользователя Active Directory. Используется при аутентификации с пользователем Active Directory, а не с сервисным принципалом.
plan
-
добавлено в 2.5
Словарь, описывающий план платёжных услуг стороннего поставщика для экземпляра
имя
- / обязательно
имя плана платёжных услуг
product
- / обязательно
наименование продукта
promotion_code
-
необязательный промокод
publisher
- / обязательно
Издатель, предлагающий план
profile
-
Профиль безопасности, найденный в файле ~/.azure/credentials.
public_ip_allocation_method
-
    Вызовы:
  • Dynamic
  • Static ←
  • Disabled
Если при создании ВМ создаётся общедоступный 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
    Вызовы:
  • no
  • yes
Используется со состоянием 'present' для перезагрузки работающей ВМ.
secret
-
Секретный ключ клиента Azure. Используется при аутентификации с помощью сервисного принципала.
short_hostname
-
Внутреннее имя хоста. В ВМ Linux это имя, возвращаемое командой `hostname`. При создании виртуальной машины short_hostname по умолчанию устанавливается равным имени.
ssh_password_enabled
boolean
    Вызовы:
  • 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
boolean
    Вызовы:
  • no
  • yes ←
Используется со состоянием 'present' для запуска машины. Установите в значение false, чтобы машина была 'остановлена'.
state
-
    Вызовы:
  • absent
  • present ←
Утверждение состояния виртуальной машины.
Состояние '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

Spec-Zone.ru

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