Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/dbigclou/public_html/plugins/system/t3/includes/menu/megamenu.php on line 141
Cómo automatizar un entorno VMware vSphere con Ansible

La semana pasada os expliqué cómo podiamos crear una relación de confianza entre hosts ESXi y un servidor Linux, muchos de ustedes os preguntabais que utilidad tenía, realmente era sencillo, en ese servidor tengo instalado Ansible, software para despliegues automatizados. Hace unos meses estuvimos viendo los primeros pasos con Ansible y vimos que funcionaba a través de relaciones de confianza, de ahí el post anterior. Hoy os voy a explicar como podemos configurar nuestro entorno VMware vSphere usando Ansible.

vSphere ansible por DBigCloud

 

Muchos de ustedes usaran Auto Deploy + PowerCLI para desplegar vuestro hosts de forma automatizada, pero a quellos que le resulte incomodo el uso de PowerShell, debéis saber que tenéis la posibilidad de usar los comandos esxcli con Ansible. Yo os voy a hacer un ejemplo sencillo de configurar un nuevo vSwitch con un Portgroup.

Lo primero de todo es conocer los PlayBooks de Ansible, es un lenguaje usado para configuración, despliegues y orquestación que va a permitir escribir politicas y ser ejecutadas de forma remota, los playbooks se guardan en ficheros con extensión .yaml y son bastante potentes.

Ahora que ya sabemos que son los PlayBook, vamos a añadir los hosts ESXi en el fichero /etc/ansible/hosts dentro de la etiqueta esxhosts, debemos tener en cuenta que si vamos a usar los nombres de los hosts, o bien los tenemos dado de alta en DNS o bien debemos añadirlos en el fichero /etc/hosts con sus respectivas IP.

[esxhosts]
dbcesx01
dbcesx02
dbcesx03

Lo siguiente es crear el fichero .yaml pero antes vamos a ver que significan las etiquetas que vamos a usar:

  • HOSTS aqui añadiremos la etiqueta del host o grupo de hosts que vayamos a usar.
  • REMOTE_USER los comandos en linux son ejecutados por un usuario, aquí añadiremos el nombre del usuario que los va a ejecutar de forma remota.
  • TASKS bajo esta etiqueta definiremos las tareas a ejecutar.
    • NAME Nombre identificativo de la tarea a ejecutar.
    • COMMAND comando que vamos a ejecutar en el servidor remoto a través de la shell.

 

Bajo TASKS existen muchas mas tareas para ejecutar, a demás de poder crear variables o bucles, si queréis profundizar más podéis consultar la documentación oficial

Antes de crear el playbook, lo que vamos a hacer es comprobar que creamos la relación de confianza de forma correcta, para ello vamos a ejecutar un PING al grupo de servidores esxhosts.

root@dbcans01:~# ansible esxhosts -m ping

 

ping esxi hosts por DBigCloud

 

Cómo vemos en la imagen anterior, los tres hosts han respondido correctamente al PING lanzado.

Ahora si vamos a crear el PlayBook, en el ejemplo que voy a realizar, voy a crear un vSwitch llamado vSwitch01 al cual le voy a conectar la interfaz vmnic02 y vmnic03, por último voy a crear el portgroup llamado dbigcloud para máquinas virtuales, al playbook, lo voy a llamar configure_hosts.yaml, podéis descargarlo desde nuestro repositorio de GitHub, y contendría lo siguiente:

- hosts: esxhosts
  remote_user: root
  tasks:
  - name: Crear vSwitch01
    command: esxcli network vswitch standard add -v vSwitch1
  - name: Añadir interfaz vmnic2 al vSwitch01
    command: esxcli network vswitch standard uplink add -u vmnic2 -v vSwitch1
  - name: Añadir interfaz vmnic3 al vSwitch01
    command: esxcli network vswitch standard uplink add -u vmnic3 -v vSwitch1
  - name: Crear portgroup dbigcloud en vSwitch01
    command: esxcli network vswitch standard portgroup add -p "dbigcloud" -v vSwitch1

 Vamos a ejecutarlo de la siguiente forma:

root@dbcans01:~# ansible-playbook configure_hosts.yaml

 Si todos los comandos para la configuración del nuevo vSwitch son correctos, obtendríamos un resultado como el siguiente:

 

playbook ansible por DBigCloud

 

Como podéis observar en la imagen anterior, nos aparece el nombre que definimos para cada una de las tareas e indicando en que servidores se ha producido el cambio, si hubiese fallado aparecerían errores en color rojo, por ultimo aparece un resumen del numero de cambios realizados.

Si accedemos al vSpehere Cliente o a nuestro vCenter, podemos ver cómo el switch y el porgroup se han creado tal y como hemos indicado.

 

red vSphere por DBigCloud

 

Cómo véis es bastante sencillo hacer uso de playbooks para configurar hosts ESXi o bien para realizar tareas de mantenimiento, como he tenido que hacer esta semana pasada, necesitaba forzar el path de 20 datastores de 20 hosts, para hacer mantenimiento en un switch de fibra, una forma rápida y sencilla es configurar en un playbook los comandos a lanzar y Ansible se encarga de ejecutarlo en cada host. Espero que os sea útil y os animéis a crear vuestros propios PlayBooks.


Compártelo:

FacebookTwitterDiggGoogle BookmarksLinkedIn

Daniel Romero Sanchez
Author: Daniel Romero SanchezWebsite: https://www.dbigcloud.com
Responsable de sistemas y Arquitecto Cloud - vExpert 2015/19- VCP550-DCV - LPIC-1


Comentarios  

0 # RE: Cómo configurar un entorno VMware vSphere con Ansiblepepe 15-10-2015 17:30
Prueba a ver si es tan sencillo con u switch distribuido :)
Responder
0 # RE: Cómo configurar un entorno VMware vSphere con AnsibleDaniel Romero Sanchez 15-10-2015 19:26
Buenas Pepe, gracias por tu comentario, te comento la sencillez la da la habilidad de cada uno a la hora de configurar vSphere a traves de linea de comando, yo no he configurado nunca un switch distribuido a traves de linea de comandos, si tu lo has hecho te invito que compartas con todos un PlayBook con dichos pasos.
Saludos.
Responder
0 # ConsultaRaul 17-12-2015 08:10
Hola Daniel,
Interesante...
¿Podría utilizarse para automatizar máquinas virtuales?
Un saludo
Responder
0 # RE: ConsultaDaniel Romero Sanchez 17-12-2015 08:21
Gracias Raul, todo lo que puedas ejecutar en linea de comando podrás hacerlo con Ansible, si lo que quieres es crear máquinas virtuales puedes hacerlo o si quieres desplegar software entre distintas máquinas virtuales.
Responder

DBigCloud en tu idioma

esenfrdeitpt

Gold Sponsor

 

vExpert 2020

DbigCloud newsletter

Suscribete a nuestra newsletter y recibe cada semana los mejores artículos seleccionados por DBigCLoud.
Email type
Please wait