thulium_drake.vmware

Conjunto de herramientas Ansible para VMWare

Este rol proporciona múltiples acciones para usar con clústeres de VMWare. Actualmente cuenta con:

  • powerstate : Gestión del estado de encendido de las VM
  • provision_guest : Creación/edición de VMs y plantillas (¡puede haber algunas restricciones!)
  • snap : Gestión de instantáneas de VM

Este rol puede delegar todas las acciones necesarias a una máquina diferente, que incluso puede ser distinta para cada VM objetivo. Dentro de este rol, esta máquina se denomina 'host API'.

Para las tareas que necesitan localizar VMs dentro de su entorno, se pone a disposición una variable extra con toda la información de las VMs objetivo. Esto permite usar atributos de VMWare, por ejemplo, en los nombres de las instantáneas. Puede encontrar esta información en la variable 'vm_info'.

Uso

Este módulo requiere el uso de PyVmomi y del SDK de VMWare; este rol detectará e intentará instalar todas las dependencias requeridas por sí mismo.

Para instrucciones detalladas sobre cómo instalar estas dependencias manualmente, consulte la configuración de ejemplo.

Nota sobre el uso con RHEL 8

Este rol funcionará perfectamente en RHEL8, sin embargo, debido a la versión de Python requerida para el SDK de vSphere, necesita cambiar el ansible_python_interpreter dependiendo de la versión mayor de vSphere. Consulte los playbooks de ejemplo para ver cómo detectarlo.

  • El SDK de vSphere 7 requiere Python 3.3+
  • El SDK de vSphere 8 requiere Python 3.8+, lo que requiere un ansible_python_interpreter personalizado en RHEL8.

Este rol ha sido preparado con soporte para vSphere 7, pero esto no ha sido probado.

¿Múltiples clústeres de vSphere? ¡Sin problema!

El playbook está configurado para usar las credenciales e información de vSphere en los hostvars de la VM objetivo. Así que, configurar múltiples clústeres de VMware es tan fácil como definir estas credenciales para ese host/grupo específico, al igual que cualquier otra variable.

Cuando Ansible ejecuta el playbook, buscará toda la información necesaria para esa VM objetivo específica. Las variables que se buscarán por host (y que deben definirse en 'group_vars') son:

  • vsphere_api_host
  • vsphere_datacenter
  • vsphere_host
  • vsphere_password
  • vsphere_username

Estado de Encendido

Los estados admitidos son:

  • Encender una VM usando herramientas de VMWare o el botón de encendido virtual.
  • Apagar una VM usando herramientas de VMWare o el botón de apagado virtual.
  • Reiniciar/restablecer una VM usando herramientas de VMWare o el botón de reinicio virtual.

El rol NO pedirá la información requerida; esta solo se puede proporcionar utilizando el playbook que se use para llamarlo:

 - hosts: all
   gather_facts: no
   tasks:
   - import_role:
       name: vmware
     vars:
       target_action: "powerstate"
       target_state: "powered-on"
     run_once: yes

Variables requeridas:

  • target_action: uno de los playbooks que vienen con este rol.
  • target_state: uno de los estados en la lista de supported_states.

Instantáneas

Las acciones admitidas son:

  • Crear instantáneas (automáticamente con una marca de fecha, o con un nombre proporcionado).
  • Eliminar una instantánea determinada o todas las instantáneas.
  • Volver a una instantánea determinada; este script NO le proporcionará una lista para elegir.

El rol NO pedirá la información requerida; esta solo se puede proporcionar utilizando el playbook que se use para llamarlo:

 - hosts: all
   gather_facts: no
   tasks:
   - import_role:
       name: vmware
     vars:
       target_action: "snap"
       target_state: "present"
       target_snapshot_name: ansible_snap_stuff
     run_once: yes

Variables requeridas:

  • target_action: uno de los playbooks que vienen con este rol.
  • target_state: una de las acciones en la lista de supported_states.

Variables opcionales:

  • target_snapshot_name:
    • Al crear instantáneas: sobrescribir el nombre de la instantánea.
    • Al volver/eliminar instantáneas: la instantánea objetivo a eliminar.

Provisión de invitado

Las acciones admitidas son:

  • Crear una nueva VM basada en una plantilla u otra VM.
  • Eliminar una VM.
  • Crear una nueva plantilla basada en una VM.

El rol NO pedirá ninguna información requerida; esta solo se puede proporcionar utilizando el playbook que se use para llamarlo. Un perfil de hardware predeterminado está disponible en el directorio de defaults.

Para crear una nueva VM, siga estos pasos:

  • Cree un archivo de vars con la siguiente información (para más detalles, consulte la documentación del módulo vmware_guest y más abajo):
    • Almacenamiento (Datastore).
    • Carpeta de VM.
    • Plantilla (asegúrese de que exista).
    • Configuración del disco y tipo del controlador de disco.
    • Configuración de red.
    • Configuración de RAM y CPU.
    • Versión de hardware de la VM y tipo de BIOS.
  • Agregue una nueva entrada al inventario.
  • Ejecute el playbook, por ejemplo:
---
- hosts: new-host.example.com
  gather_facts: no
  tasks:
    - import_role:
        name: vmware
      vars:
        target_action: provision_guest
        target_state: present
        target_esxi_hostname: esxi.example.com
      run_once: yes

Variables requeridas (la mayoría de estas tienen un valor predeterminado):

  • target_action: uno de los playbooks que vienen con este rol.
  • target_state: una de las acciones en la lista de supported_states.
  • target_esxi_hostname / target_esxi_cluster: El nombre del host/clúster donde debe ejecutarse la VM.
  • target_folder: La carpeta en la que debe colocarse la VM.
  • target_networks: Un diccionario con la configuración de red. Consulte la documentación vmware_guest.
  • target_disks: Un diccionario con la disposición del disco. Consulte la documentación vmware_guest.
  • target_ram: Un diccionario con la configuración de memoria. Consulte el archivo de defaults para un ejemplo.
  • target_cpu: Un diccionario con la configuración de CPU. Consulte el archivo de defaults para un ejemplo.
  • target_template: La plantilla en la que se basa la VM; esto puede ser otra VM o una plantilla.

Variables opcionales:

  • target_force: Ignorar cualquier advertencia o error.
  • target_scsi: El tipo de controlador de disco a utilizar.
  • target_boot_firmware: El tipo de BIOS de la VM.
  • target_vm_version: La versión de HW de VMWare que se debe usar.
  • target_customization: Cualquier personalización de VMWare que se ejecute en la VM después de su creación. Consulte la documentación vmware_guest para más información.
Instalar
ansible-galaxy install thulium_drake.vmware
Licencia
gpl-3.0
Descargas
2.2k
Propietario