adambrassard.azure_virtualmachine

Erstellen/Aktualisieren von VMs in Azure

Diese Rolle erstellt/aktualisiert VM(s) in Azure

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

Anforderungen

Benötigt das Azure_rm-Modul
ansible >=2.8
Getestet in Ansible 2.13.1

Installieren Sie die Azure Collection von Galaxy:

ansible-galaxy collection install azure.azcollection

Installieren Sie die benötigten Python-Pakete aus der Sammlung

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

Benutzerdefinierte Rollenvariablen

#Standard erforderliche Variablen:
resource_group:
location:

# VM Informationen
vm:
  - name: # eindeutiger VM-Name
    size: # Beispiel: "Standard_D4s_v3" # Größe der zu erstellenden VM
    offer: # Beispiel: "RHEL" # spezifischer Typ von OS und die unterstützende Firma
    publisher: # Beispiel: "RedHat" # Firmenname, der das Bild veröffentlicht hat
    sku_name: # Beispiel: "7-RAW" # Hauptversion des zu verwendenden OS
    sku_version: # Beispiel: "latest" # Spezifische Version des OS
    os_type: # Beispiel: Windows, Linux
    managed_disk_type: # Art des Speichers für die verwaltete Festplatte: Standard_LRS oder Premium_LRS. Wenn nicht angegeben, wird die Festplatte als Standard_LRS erstellt
    os_disk_caching: # Art des OS-Disk-Cachings. Standardmäßig auf 'ReadOnly' gesetzt, kann auch "ReadWrite" sein. Muss nicht definiert werden, wenn der Standard gewünscht ist.
    os_disk_size_gb: # Die Größe der Festplatte mit dem OS, Windows 2012 benötigt mindestens 127 und lässt keine niedrigere Größe zu. Muss nicht definiert werden, wenn der Standard gewünscht ist.
    vm_username: # Beispiel: "azureadmin"
    vm_password:  # Passwort definieren
    avset_name: # Definieren Sie ein Verfügbarkeitsset, wenn gewünscht. Ansonsten wird dies ignoriert
    nic_name: # geben Sie den Namen einer vorhandenen NIC ein
    pubip: # Stellen Sie auf statisch oder dynamisch ein, wenn Sie eine öffentliche IP wollen, Standard ist deaktiviert
    subnet_name: # Name des Subnetzes, um die VM zu erstellen. Es kann mehrere und unterschiedliche für jede VM geben. Modul für die VM verwendet standardmäßig das erste vorhandene Subnetz.

Abhängigkeiten

Wenn Sie den Namen der Netzwerkschnittstelle nicht angeben, wird eine erstellt, solange es ein Netzwerk in der Ressourcengruppe gibt.
Der Name der NIC kann definiert werden, wenn sie zuvor existiert.

Beispiel-Playbook

Erstellen mehrerer VMs in einem Playbook

---
- name: Azure Playbook zum Erstellen mehrerer VMs
  hosts: localhost

  pre_tasks:
    - name: Erstellen mehrerer VMs in 1 Ressourcengruppe
      set_fact:
        #Standard erforderliche Variablen
        resource_group: "MyRG"
        location: "canadacentral"

        #VM-Variablenstruktur für mehrere VM-Eingaben
        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

Erstellen einer VM mit einer vorhandenen NIC

---
- name: Azure Playbook zum Erstellen mehrerer VMs
  hosts: localhost

  pre_tasks:
    - name: Erstellen einer VM mit einer vorhandenen NIC und Angabe des OS-Disk-Caching-Typs
      set_fact:
        #Standard erforderliche Variablen
        resource_group: "MyRG"
        location: "canadacentral"

        #VM-Variablenstruktur für VM-Eingaben
        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

Lizenz

MIT

Autoreninformationen

Adam Brassard: Abrass in IRC

Über das Projekt

A role to create multiple VMs in Azure

Installieren
ansible-galaxy install adambrassard.azure_virtualmachine
GitHub Repository
Lizenz
mit
Downloads
88
Besitzer