azure_virtualmachine

Создание/обновление ВМ в Azure

Эта роль создает/обновляет ВМ(ы) в Azure.

https://docs.ansible.com/ansible/latest/modules/azure_rm_virtualmachine_module.html

Требования

Требуется модуль Azure_rm
ansible >=2.8
Проверено в Ansible 2.13.1

Установите коллекцию Azure из Galaxy:

ansible-galaxy collection install azure.azcollection

Установите требуемые пакеты Python из коллекции

sudo pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements-azure.txt

Переменные роли, определяемые пользователем

#Обязательные переменные по умолчанию:
resource_group:
location:

# Информация о ВМ
vm:
  - name: # уникальное имя ВМ
    size: # Пример: "Standard_D4s_v3" # Определение размера создаваемой ВМ
    offer: # Пример: "RHEL" # Определение конкретного типа ОС и компании, которая его поддерживает
    publisher: # Пример: "RedHat" # Название компании, опубликовавшей изображение
    sku_name: # Пример: "7-RAW" # Основная версия ОС, которая будет использоваться
    sku_version: # Пример: "latest" # Конкретная версия ОС
    os_type: # Пример: Windows, Linux
    managed_disk_type: # Тип хранилища для управляемого диска: Standard_LRS или Premium_LRS. Если не указано, диск создается Standard_LRS
    os_disk_caching: # Тип кэширования диска ОС. По умолчанию установлено на 'ReadOnly', также может быть "ReadWrite". Не нужно определять, если требуется оставить по умолчанию.
    os_disk_size_gb: # Размер диска с ОС, Windows 2012 требует минимум 127 и не позволит установить меньше. Не нужно определять, если требуется оставить по умолчанию.
    vm_username: # Пример: "azureadmin"
    vm_password:  # Определите пароль
    avset_name: # Определите набор доступности, если необходимо. в противном случае это будет игнорироваться
    nic_name: # введите имя существующего NIC
    pubip: # Установите на статический или динамический, если вы хотите получить публичный IP, по умолчанию отключено
    subnet_name: # Имя подсети для создания ВМ, может быть несколько и разные для каждой ВМ. Модуль для ВМ по умолчанию использует первую существующую подсеть.

Зависимости

Если вы не определите имя сетевого интерфейса, он создаст один, если в группе ресурсов есть сеть.
Вы можете определить имя NIC, если он существует заранее.

Пример плейбука

Создание нескольких ВМ в одном плейбуке

---
- name: Azure Playbook для создания нескольких ВМ
  hosts: localhost

  pre_tasks:
    - name: Создание нескольких ВМ в 1 группе ресурсов
      set_fact:
        #Обязательные переменные по умолчанию
        resource_group: "MyRG"
        location: "canadacentral"

        #Структура переменных ВМ для ввода нескольких ВМ
        vm:
          - name: NewVM
            size: "Standard_D4s_v3"
            offer: "RHEL"
            publisher: "RedHat"
            sku_name: "7-RAW"
            sku_version: "latest"
            os_type: Linux
            managed_disk_type: Standard_LRS
            os_disk_size_gb: 150
            vm_username: "TempAdmin"
            vm_password:  "ВыНеДолжныИспользоватьПаролиВЯсномВиде@!"
            avset_name: "myavset4"
            pubip: "static"

          - name: SecondGreatVm
            size: "Standard_D4s_v3"
            offer: "RHEL"
            publisher: "RedHat"
            sku_name: "7-RAW"
            sku_version: "latest"
            os_type: Linux
            managed_disk_type: Premium_LRS
            os_disk_size_gb: 200
            vm_username: "TempAdmin"
            vm_password:  "ВыНеДолжныИспользоватьПаролиВЯсномВиде@!"
            avset_name: "myavset4"

          - name: MyThirdVM
            size: "Standard_DS2_v2"
            offer: "WindowsServer"
            publisher: "MicrosoftWindowsServer"
            sku_name: "2019-Datacenter"
            sku_version: "latest"
            os_type: "Windows"
            managed_disk_type: StandardSSD_LRS
            os_disk_size_gb: 200
            vm_username: "TempAdmin"
            vm_password:  "ВыНеДолжныИспользоватьПаролиВЯсномВиде@!"
            avset_name: "windowsAVset"

  connection: local
  roles:
    - azure-virtualmachine

Создание ВМ с использованием уже существующего NIC

---
- name: Azure Playbook для создания нескольких ВМ
  hosts: localhost

  pre_tasks:
    - name: Создание ВМ с использованием существующего NIC и указанием типа кэширования диска ОС
      set_fact:
        #Обязательные переменные по умолчанию
        resource_group: "MyRG"
        location: "canadacentral"

        #Структура переменных ВМ для ввода ВМ
        vm:
          - name: NewVM
            size: "Standard_D4s_v3"
            offer: "RHEL"
            publisher: "RedHat"
            sku_name: "7-RAW"
            sku_version: "latest"
            os_type: Linux
            os_disk_caching: "ReadOnly"
            managed_disk_type: Standard_LRS
            os_disk_size_gb: 150
            vm_username: "TempAdmin"
            vm_password:  "ВыНеДолжныИспользоватьПаролиВЯсномВиде@!"
            avset_name: "myavset4"
            nic_name: "oldnic2019"
  connection: local
  roles:
    - azure-virtualmachine

Лицензия

MIT

Информация об авторе

Адам Брассар: Abrass в IRC

О проекте

A role to create multiple VMs in Azure

Установить
ansible-galaxy install AdamBrassard/azure-virtualmachine
Лицензия
mit
Загрузки
79
Владелец