mbach04.nutanix_vm_provisioner

Provisionneur de VM Nutanix

Un rôle Ansible de base pour provisionner des machines virtuelles sur un Nutanix AHV en utilisant l'API v3.

Variables Requises

api_version: "3.0"          # Nutanix se détourne de l'API v2, il est préférable d'utiliser la v3 si disponible
cluster_url: 172.16.1.100   # Adresse IP où vous vous connectez normalement à PRISM
prism_user: admin           # Un compte avec les autorisations pour provisionner sur le cluster
prism_password: secret      # Le mot de passe de votre compte, notez que vous ne devez pas le stocker en clair, utilisez le coffre Ansible

cluster_name: "Votre Cluster"      # Nom du cluster à provisionner
subnet_name: "VMNet"              # Nom du sous-réseau (vlan) pour ajouter des VMs
image_name: "RHEL_Server_7.5"     # Nom de l'image disque ou ISO à utiliser

# Une liste de dictionnaires qui définissent les VMs que vous souhaitez créer
# Notez que vous pouvez diviser cela en plusieurs listes séparées et redéfinir vm_defs lors de l'appel du rôle pour boucler à travers
# plusieurs ensembles de VMs.
vm_defs:
  - {vm_name: my-vm-01, vm_ip: '172.16.1.111', vm_ram: 8192, vm_num_cpu_per_socket: 1, vm_num_sockets: 1, vm_disk_list: [disk_size_mib: 152588]}

Cloud-init

Si vous ne souhaitez pas utiliser la personnalisation des invités (cloud-init dans ce cas), retirez la section guest_customization du fichier templates/vm-body.yml.j2, ou variablez-la et soumettez votre changement à ce dépôt. :-)

Si vous souhaitez utiliser le rôle avec un script cloud-init et définir un mot de passe utilisateur, vous pouvez le faire (mais ce n'est pas la meilleure pratique de sécurité).

Utilisez la commande suivante sur un hôte RHEL pour générer un mot de passe haché SHA-512 à utiliser pour cloud_init_root_pass avec l'image RHEL kvm.

python -c 'import crypt,getpass; print crypt.crypt(getpass.getpass())'

Définissez la chaîne résultante égale à cloud_init_root_pass dans group_vars/*/all.yaml.

Exemple de Playbook

---
- name: Provisionner des VMs
  hosts: localhost
  gather_facts: false
  vars:
    my_vms:
      - {vm_name: server1, vm_ip: '172.29.171.100', vm_ram: 4096, vm_num_cpu_per_socket: 1, vm_num_sockets: 4, vm_disk_list: [disk_size_mib: 76294, disk_size_mib: 152588]}
      - {vm_name: server2, vm_ip: '172.29.171.101', vm_ram: 4096, vm_num_cpu_per_socket: 1, vm_num_sockets: 4, vm_disk_list: [disk_size_mib: 76294, disk_size_mib: 152588]}
  tasks:
    - name: Provisionner des VMs sur Nutanix
      include_role:
        name: nutanix_provisioner
      vars:
        vm_defs: "{{ my_vms }}"

Licence

Sous licence MIT. Veuillez consulter le fichier LICENSE pour plus de détails.

Informations sur l'Auteur

Créé par Matthew Bach et Timothy Ling, de Red Hat.

À propos du projet

NAPS Team

Installer
ansible-galaxy install mbach04.nutanix_vm_provisioner
Licence
mit
Téléchargements
325
Propriétaire
Rusty Python and Golang hobbyist, Automation dude, Rick and Morty Fan