thulium_drake.vmware

Kit d'outils Ansible pour VMWare

Ce rôle fournit plusieurs actions à utiliser avec des clusters VMWare. Il inclut actuellement :

  • powerstate : Gestion des états d'alimentation des VM
  • provision_guest : Création/édition de VM et de modèles (certaines restrictions peuvent s'appliquer !)
  • snap : Gestion des snapshots de VM

Ce rôle peut déléguer toutes les actions nécessaires à une machine différente, qui peut même être différente pour chaque VM ciblée. Dans ce rôle, cette machine est appelée l' "API host".

Pour les tâches nécessitant de localiser des VM dans votre environnement, une variable supplémentaire est mise à disposition avec toutes les informations des VM ciblées. Cela permet d'utiliser les attributs VMWare, par exemple dans les noms de snapshot. Vous pouvez trouver ces informations dans la variable 'vm_info'.

Utilisation

Ce module nécessite l'utilisation de PyVmomi et du SDK VMWare. Ce rôle détectera et tentera d'installer lui-même toutes les dépendances requises.

Pour des instructions détaillées sur la manière d'installer ces dépendances manuellement, veuillez consulter l'exemple de configuration.

Remarque concernant son utilisation avec RHEL 8

Ce rôle fonctionnera parfaitement sur RHEL8, cependant, en raison de la version Python requise pour le SDK vSphere, vous devez changer l' ansible_python_interpreter en fonction de la version majeure de vSphere. Veuillez consulter les exemples de playbooks pour savoir comment le détecter.

  • Le SDK vSphere 7 nécessite Python 3.3+
  • Le SDK vSphere 8 nécessite Python 3.8+, ce qui requiert un ansible_python_interpreter personnalisé sur RHEL8

Ce rôle a été préparé avec un support pour vSphere 7, mais cela n'a pas été testé.

Plusieurs clusters vSphere ? Pas de problème !

Le playbook est configuré pour utiliser les informations et les identifiants vSphere dans les hostvars de la VM ciblée. Ainsi, configurer plusieurs clusters VMWare est aussi facile que de définir ces identifiants pour cet hôte/groupe spécifique, de la même manière que pour toute autre variable.

Lorsque Ansible exécute le playbook, il recherchera toutes les informations requises pour cette VM ciblée. Les variables qui seront recherchées par hôte (et doivent être définies dans 'group_vars') sont :

  • vsphere_api_host
  • vsphere_datacenter
  • vsphere_host
  • vsphere_password
  • vsphere_username

État d'alimentation

Les états pris en charge sont :

  • Démarrer une VM en utilisant soit les outils VMWare soit le bouton d'alimentation virtuel
  • Éteindre une VM en utilisant soit les outils VMWare soit le bouton d'alimentation virtuel
  • Redémarrer/réinitialiser une VM en utilisant soit les outils VMWare soit le bouton d'alimentation virtuel

Le rôle ne demandera PAS d'informations requises, celles-ci peuvent seulement être fournies en utilisant le playbook qui l'appelle :

 - hosts: all
   gather_facts: no
   tasks:
   - import_role:
       name: vmware
     vars:
       target_action: "powerstate"
       target_state: "powered-on"
     run_once: yes

Variables requises :

  • target_action : l'un des playbooks fournis avec ce rôle
  • target_state : l'un des états de la liste supported_states

Snap

Les actions prises en charge sont :

  • Créer des snapshots (automatiquement avec un timestamp, ou avec un nom fourni)
  • Supprimer un ou tous les snapshots
  • Revenir à un snapshot donné, ce script ne fournira PAS de liste pour faire votre choix.

Le rôle ne demandera PAS d'informations requises, celles-ci peuvent seulement être fournies en utilisant le playbook qui l'appelle :

 - hosts: all
   gather_facts: no
   tasks:
   - import_role:
       name: vmware
     vars:
       target_action: "snap"
       target_state: "present"
       target_snapshot_name: ansible_snap_stuff
     run_once: yes

Variables requises :

  • target_action : l'un des playbooks fournis avec ce rôle
  • target_state : l'une des actions de la liste supported_states

Variables optionnelles :

  • target_snapshot_name :
    • Lors de la création de snapshots : écraser le nom du snapshot
    • Lors de la réinitialisation/suppression de snapshots : le snapshot cible à supprimer

Provisionner une VM

Les actions prises en charge sont :

  • Créer une nouvelle VM basée sur un modèle ou une autre VM
  • Supprimer une VM
  • Créer un nouveau modèle basé sur une VM

Le rôle ne demandera PAS d'informations requises, celles-ci peuvent seulement être fournies en utilisant le playbook qui l'appelle. Un profil matériel par défaut est disponible dans le répertoire des valeurs par défaut.

Pour créer une nouvelle VM, suivez ces étapes :

  • Créez un fichier vars avec les informations suivantes (pour les détails, consultez la documentation du module vmware_guest et ci-dessous) :
    • Datastore
    • Dossier de la VM
    • Modèle (assurez-vous qu'il existe)
    • Configuration du disque et type de contrôleur de disque
    • Configuration du réseau
    • Configuration de la RAM et du CPU
    • Version hardware de la VM et type de BIOS
  • Ajoutez une nouvelle entrée dans l'inventaire
  • Exécutez le playbook, par exemple :
---
- hosts: new-host.example.com
  gather_facts: no
  tasks:
    - import_role:
        name: vmware
      vars:
        target_action: provision_guest
        target_state: present
        target_esxi_hostname: esxi.example.com
      run_once: yes

Variables requises (la plupart ont une valeur par défaut) :

  • target_action : l'un des playbooks fournis avec ce rôle
  • target_state : l'une des actions de la liste supported_states.
  • target_esxi_hostname / target_esxi_cluster : Le nom de l'hôte/cluster sur lequel la VM doit s'exécuter.
  • target_folder : Le dossier dans lequel la VM doit être placée.
  • target_networks : Un dictionnaire avec la configuration du réseau. Veuillez consulter la documentation vmware_guest.
  • target_disks : Un dictionnaire avec la configuration des disques. Veuillez consulter la documentation vmware_guest.
  • target_ram : Un dictionnaire avec la configuration de la mémoire. Veuillez consulter le fichier par défaut pour un exemple.
  • target_cpu : Un dictionnaire avec la configuration du CPU. Veuillez consulter le fichier par défaut pour un exemple.
  • target_template : Le modèle sur lequel baser la VM, cela peut être une autre VM ou un modèle.

Variables optionnelles :

  • target_force : Ignorer tout avertissement ou erreur.
  • target_scsi : Le type de contrôleur de disque à utiliser.
  • target_boot_firmware : Le type de BIOS de la VM.
  • target_vm_version : La version HW VMWare à utiliser.
  • target_customization : Toute personnalisation VMWare à exécuter sur la VM après sa création. Veuillez consulter la documentation vmware_guest pour plus d'informations.
Installer
ansible-galaxy install thulium_drake.vmware
Licence
gpl-3.0
Téléchargements
2.2k
Propriétaire