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.

Über das Projekt

NAPS Team

Installieren
ansible-galaxy install mbach04.nutanix_vm_provisioner
Lizenz
mit
Downloads
325
Besitzer
Rusty Python and Golang hobbyist, Automation dude, Rick and Morty Fan