Spec-Zone.ru › Ansible 2.6

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
    Варианты:
  • no
  • да ←
Переключатель, определяющий, выделена ли машина/освобождена ли она, полезно только с параметром state='present'.
api_profile
(добавлен в 2.5)
По умолчанию:
"latest"
Выбирает профиль API для взаимодействия с Azure-сервисами. Значение по умолчанию latest подходит для общедоступных облаков; будущие значения позволят использовать Azure Stack.
append_tags
bool
    Варианты:
  • no
  • да ←
Управляет тем, является ли поле тегов каноническим или оно просто добавляется к существующим тегам. При каноническом поле все теги, отсутствующие в параметре tags, будут удалены из метаданных объекта.
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)
    Варианты:
  • 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)
Описание списка дисков данных.
lun
(добавлен в 2.4)
По умолчанию:
0
Логический номер устройства для диска данных
disk_size_gb
(добавлен в 2.4)
Начальный размер диска в ГБ для пустых дисков данных
managed_disk_type
(добавлен в 2.4)
    Варианты:
  • Standard_LRS
  • Premium_LRS
Тип управляемого диска данных
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)
    Варианты:
  • ReadOnly ←
  • ReadWrite
Тип кэширования диска данных.
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)
    Варианты:
  • Standard_LRS
  • Premium_LRS
Тип управляемого диска операционной системы
name
обязательно
Имя виртуальной машины.
network_interface_names
Список имен существующих сетевых интерфейсов для добавления к виртуальной машине. Если имя сетевого интерфейса не указано при создании виртуальной машины, будет создан интерфейс по умолчанию. Для создания сетевого интерфейса модулем должен существовать по крайней мере одна виртуальная сеть с одним подсетью.

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

псевдонимы: disk_caching
os_type
    Варианты:
  • Windows
  • Linux ←
Базовый тип операционной системы.
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 ←
Утверждение состояния виртуальной машины.
Состояние «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

Spec-Zone.ru

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