mbach04.nutanix_vm_provisioner

Nutanix VM Provisioner

Un rol básico de Ansible para aprovisionar máquinas virtuales en un Nutanix AHV usando APIv3.

Variables Requeridas

api_version: "3.0"          # Nutanix está dejando de usar la API v2, es mejor usar v3 si está disponible
cluster_url: 172.16.1.100   # Dirección IP donde normalmente iniciarías sesión en PRISM
prism_user: admin           # Una cuenta con permisos para aprovisionar en el clúster
prism_password: secret      # La contraseña de tu cuenta. Nota: no debes almacenar esto en texto claro, usa Ansible vault

cluster_name: "Tu Clúster"      # Nombre del clúster contra el que aprovisionar
subnet_name: "VMNet"              # Nombre de la subred (vlan) a la que añadir las VMs
image_name: "RHEL_Server_7.5"     # Nombre de la imagen de disco o ISO a usar

# Una lista de diccionarios que definen las VMs que deseas crear
# Nota: puedes dividir esto en varias listas separadas y sobrescribir vm_defs al llamar al rol para recorrer
# varios conjuntos de VMs.
vm_defs:
  - {vm_name: mi-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 no deseas usar personalización de invitado (cloud-init en este caso), entonces retira la sección guest_customization del archivo templates/vm-body.yml.j2, o conviértelo en una variable y envía tu cambio a este repositorio. :-)

Si deseas usar el rol con un script de cloud-init y establecer una contraseña de usuario, puedes hacerlo (pero no es la mejor práctica de seguridad).

Usa el siguiente comando en un host RHEL para generar una contraseña hasheada SHA-512 que será usada como cloud_init_root_pass con la imagen de RHEL kvm.

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

Establece la cadena resultante igual a cloud_init_root_pass en group_vars/*/all.yaml.

Ejemplo de Playbook

---
- name: Aprovisionar algunas VMs
  hosts: localhost
  gather_facts: false
  vars:
    mis_vms:
      - {vm_name: servidor1, 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: servidor2, 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: Aprovisionar VMs en Nutanix
      include_role:
        name: nutanix_provisioner
      vars:
        vm_defs: "{{ mis_vms }}"

Licencia

Licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

Información del Autor

Creado por Matthew Bach y Timothy Ling, de Red Hat.

Acerca del proyecto

NAPS Team

Instalar
ansible-galaxy install mbach04.nutanix_vm_provisioner
Licencia
mit
Descargas
325
Propietario
Rusty Python and Golang hobbyist, Automation dude, Rick and Morty Fan