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.
ansible-galaxy install mbach04.nutanix_vm_provisioner