mbach04.nutanix_vm_provisioner
Nutanix VM Bereitstellung
Eine einfache Ansible-Rolle zur Bereitstellung virtueller Maschinen auf einem Nutanix AHV unter Verwendung von APIv3.
Benötigte Variablen
api_version: "3.0" # Nutanix wechselt von der API v2, es ist am besten, v3 zu verwenden, wenn verfügbar
cluster_url: 172.16.1.100 # IP-Adresse, über die Sie sich normalerweise bei PRISM anmelden
prism_user: admin # Ein Konto mit Berechtigungen zur Bereitstellung im Cluster
prism_password: geheim # Das Passwort für Ihr Konto. Hinweis: Sie sollten dies nicht im Klartext speichern, verwenden Sie Ansible Vault
cluster_name: "Ihr Cluster" # Name des Clusters, gegen den bereitgestellt werden soll
subnet_name: "VMNet" # Name des Subnetzes (vlan), zu dem VMs hinzugefügt werden sollen
image_name: "RHEL_Server_7.5" # Name des Festplattenimages oder der ISO, die verwendet werden soll
# Eine Liste von Dictionnaires, die die VMs definieren, die erstellt werden sollen
# Hinweis: Sie können dies in mehrere separate Listen aufteilen und vm_defs beim Aufrufen der Rolle überschreiben, um über
# mehrere VM-Gruppen zu iterieren.
vm_defs:
- {vm_name: meine-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
Wenn Sie keine Gastanpassung (in diesem Fall cloud-init) verwenden möchten, entfernen Sie den Abschnitt guest_customization
aus der Datei templates/vm-body.yml.j2
oder machen Sie ihn variabel und reichen Sie Ihre Änderung in dieses Repository ein. :-)
Wenn Sie die Rolle mit einem Cloud-init-Skript verwenden und ein Benutzerpasswort festlegen möchten, können Sie dies tun (aber es ist nicht die beste Sicherheitspraktik).
Verwenden Sie den folgenden Befehl auf einem RHEL-Host, um ein SHA-512-hash passwort für cloud_init_root_pass
zu generieren, das mit dem RHEL-Image kvm
verwendet wird.
python -c 'import crypt,getpass; print crypt.crypt(getpass.getpass())'
Setzen Sie den resultierenden String gleich cloud_init_root_pass
in group_vars/*/all.yaml
.
Beispiel Playbook
---
- name: VMs bereitstellen
hosts: localhost
gather_facts: false
vars:
meine_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: VMs auf Nutanix bereitstellen
include_role:
name: nutanix_provisioner
vars:
vm_defs: "{{ meine_vms }}"
Lizenz
Unter der MIT-Lizenz lizenziert. Siehe die LICENSE-Datei für Details.
Autoreninformation
Erstellt von Matthew Bach und Timothy Ling von Red Hat.