adambrassard.azure_virtualmachine

Créer/Mettre à jour une VM dans Azure

Ce rôle crée/met à jour des VM dans Azure.

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

Exigences

Nécessite le module Azure_rm
ansible >=2.8
Testé avec Ansible 2.13.1

Installer la collection Azure depuis Galaxy :

ansible-galaxy collection install azure.azcollection

Installer les paquets Python requis depuis la collection :

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

Variables définies par l'utilisateur

# Variables requises par défaut :
resource_group:
location:

# Informations sur la VM
vm:
  - name: # nom unique de la vm
    size: # Exemple : "Standard_D4s_v3" # Définir la taille de la VM à créer
    offer: # Exemple : "RHEL" # définir le type spécifique d'OS et la société qui le supporte
    publisher: # Exemple : "RedHat" # Nom de la société qui a publié l'image
    sku_name: # Exemple : "7-RAW" # Version principale de l'OS à utiliser
    sku_version: # Exemple : "latest" # Version spécifique de l'OS
    os_type: # Exemple : Windows, Linux
    managed_disk_type: # Type de stockage pour le disque géré : Standard_LRS ou Premium_LRS. S'il n'est pas spécifié, le disque sera créé en Standard_LRS
    os_disk_caching: # Type de caching pour le disque OS. Défini par défaut sur 'ReadOnly', peut aussi être "ReadWrite". N'a pas besoin d'être défini si la valeur par défaut est souhaitée.
    os_disk_size_gb: # Taille du disque contenant l'OS, Windows 2012 nécessite un minimum de 127 et n'acceptera pas une valeur inférieure. N'a pas besoin d'être défini si la valeur par défaut est souhaitée.
    vm_username: # Exemple : "azureadmin"
    vm_password:  # Définir un mot de passe
    avset_name: # Définir un ensemble de disponibilité si désiré, sinon cela sera ignoré
    nic_name: # entrer le nom d'un NIC existant
    pubip: # Régler sur statique ou dynamique si vous voulez une IP publique, par défaut désactivé
    subnet_name: # Nom du sous-réseau pour créer la vm, il peut y en avoir plusieurs et différents pour chaque VM. Le module pour la VM par défaut au premier sous-réseau existant.

Dépendances

Si vous ne définissez pas le nom de l'interface réseau, une sera créée tant qu'il y a un réseau dans le groupe de ressources.
Vous pouvez définir le nom du NIC s'il existe au préalable.

Exemple de Playbook

Création de plusieurs VM dans un playbook

---
- name: Playbook Azure créant plusieurs VM
  hosts: localhost

  pre_tasks:
    - name: Création de plusieurs VM dans 1 groupe de ressources
      set_fact:
        # Variables requises par défaut
        resource_group: "MonRG"
        location: "canadacentral"

        # Structure de variable VM pour plusieurs entrées de VM
        vm:
          - name: NouvelleVM
            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: "AdminTemp"
            vm_password:  "VousNeDevriezPasUtiliserDesMotsDePasseEnTexteClair@!"
            avset_name: "monavset4"
            pubip: "statique"

          - name: DeuxièmeSuperVm
            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: "AdminTemp"
            vm_password:  "VousNeDevriezPasUtiliserDesMotsDePasseEnTexteClair@!"
            avset_name: "monavset4"

          - name: MaTroisièmeVM
            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: "AdminTemp"
            vm_password:  "VousNeDevriezPasUtiliserDesMotsDePasseEnTexteClair@!"
            avset_name: "windowsAVset"

  connection: local
  roles:
    - azure-virtualmachine

Création d'une VM utilisant un NIC existant

---
- name: Playbook Azure créant plusieurs VM
  hosts: localhost

  pre_tasks:
    - name: Création d'une VM utilisant un NIC existant et spécifiant le type de caching du disque OS
      set_fact:
        # Variables requises par défaut
        resource_group: "MonRG"
        location: "canadacentral"

        # Structure de variable VM pour l'entrée de la VM
        vm:
          - name: NouvelleVM
            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: "AdminTemp"
            vm_password:  "VousNeDevriezPasUtiliserDesMotsDePasseEnTexteClair@!"
            avset_name: "monavset4"
            nic_name: "anciennic2019"
  connection: local
  roles:
    - azure-virtualmachine

Licence

MIT

Informations sur l'auteur

Adam Brassard : Abrass sur IRC

À propos du projet

A role to create multiple VMs in Azure

Installer
ansible-galaxy install adambrassard.azure_virtualmachine
Licence
mit
Téléchargements
88
Propriétaire