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
Installer
ansible-galaxy install adambrassard.azure_virtualmachine
Licence
mit
Téléchargements
88
Propriétaire