adambrassard.azure_virtualmachine

Tworzenie/Aktualizacja VM w Azure

Ta rola tworzy/aktualizuje VM(y) w Azure

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

Wymagania

Wymaga modułu Azure_rm
ansible >=2.8
Testowane w Ansible 2.13.1

Zainstaluj Azure Collection z Galaxy:

ansible-galaxy collection install azure.azcollection

Zainstaluj wymagane pakiety Python z kolekcji

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

Zdefiniowane przez użytkownika zmienne roli

#Domyślne wymagane zmienne:
resource_group:
location:

# Informacje o VM
vm:
  - name: # unikalna nazwa VM
    size: # Przykład: "Standard_D4s_v3" # Określenie rozmiaru VM do utworzenia
    offer: # Przykład: "RHEL" # określenie konkretnego wydania systemu operacyjnego i firmy, która go wspiera
    publisher: # Przykład: "RedHat" # nazwa firmy, która opublikowała obraz
    sku_name: # Przykład: "7-RAW" # Główna wersja systemu operacyjnego do użycia
    sku_version: # Przykład: "latest" # Konkretna wersja systemu operacyjnego
    os_type: # Przykład: Windows, Linux
    managed_disk_type: # Typ pamięci dla zarządzanego dysku: Standard_LRS lub Premium_LRS. Jeśli nie zostanie określony, dysk zostanie utworzony jako Standard_LRS
    os_disk_caching: # Typ pamięci podręcznej dysku systemowego. Domyślnie ustawiony na 'ReadOnly', może być także "ReadWrite". Nie trzeba go określać, jeśli chcesz użyć domyślnej wartości.
    os_disk_size_gb: # Rozmiar dysku z systemem operacyjnym, Windows 2012 wymaga minimum 127 i nie pozwala na mniejszy rozmiar. Nie trzeba go określać, jeśli chcesz użyć domyślnej wartości.
    vm_username: # Przykład: "azureadmin"
    vm_password:  # Określ hasło
    avset_name: # Określ zestaw dostępności, jeśli chcesz. W przeciwnym razie zostanie to zignorowane
    nic_name: # podaj nazwę istniejącej karty sieciowej
    pubip: # Ustaw na statyczny lub dynamiczny, jeśli chcesz, aby był publiczny adres IP. Domyślnie wyłączony
    subnet_name: # Nazwa podsieci do utworzenia VM, może być ich wiele i różne dla każdej VM. Moduł dla VM domyślnie używa pierwszej istniejącej podsieci.

Zależności

Jeśli nie zdefiniujesz nazwy interfejsu sieciowego, zostanie on utworzony, o ile w grupie zasobów będzie istniała sieć.
Możesz określić nazwę NIC, jeśli istnieje wcześniej.

Przykład Playbooka

Tworzenie wielu VM w jednym playbooku

---
- name: Playbook Azure do tworzenia wielu VM
  hosts: localhost

  pre_tasks:
    - name: Tworzenie wielu VM w 1 grupie zasobów
      set_fact:
        #Domyślne wymagane zmienne
        resource_group: "MyRG"
        location: "canadacentral"

        #Struktura zmiennych VM dla wielu wpisów VM
        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:  "YouShouldntUseClearTextPasswords@!"
            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:  "YouShouldntUseClearTextPasswords@!"
            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:  "YouShouldntUseClearTextPasswords@!"
            avset_name: "windowsAVset"

  connection: local
  roles:
    - azure-virtualmachine

Tworzenie VM przy użyciu istniejącej NIC

---
- name: Playbook Azure do tworzenia wielu VM
  hosts: localhost

  pre_tasks:
    - name: Tworzenie VM z użyciem istniejącej NIC i określenie typu pamięci podręcznej dysku systemowego
      set_fact:
        #Domyślne wymagane zmienne
        resource_group: "MyRG"
        location: "canadacentral"

        #Struktura zmiennych VM dla wpisu VM
        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:  "YouShouldntUseClearTextPasswords@!"
            avset_name: "myavset4"
            nic_name: "oldnic2019"
  connection: local
  roles:
    - azure-virtualmachine

Licencja

MIT

Informacje o autorze

Adam Brassard: Abrass na IRC

O projekcie

A role to create multiple VMs in Azure

Zainstaluj
ansible-galaxy install adambrassard.azure_virtualmachine
Licencja
mit
Pobrania
88
Właściciel