Tales from a Solution Architect vMotioning from Solution Engineering to Solution Architects

Desplegando VCSA sobre línea de comandos

Mientras estoy mirando como automatizar la creación de un nested lab (sí, ya sé que existe AutoLab, but just because) os explico como desplegar un VCSA 6.0 desde línea de comandos, usando una fantástica utilidad llamada vcsa-deploy. Mediante un fichero JSON, podemos invocar la utilidad y automáticamente desplegará un VCSA con la configuración que le hagas llegar por el fichero JSON.

El fichero JSON es el siguiente

Desde nuestro equipo, montaremos la ISO y dentro del directorio vcsa-cli-installer encontraremos los directorios para los distintos sistemas operativos soportados. En mi caso usaré el de OS X

./vcsa-deploy ~/repos/homelab/vcsa.json --accept-eula

Ejecutando eso, empezará a desplegar el VCSA. Para que os hagáis una idea de los tiempos, sobre una conexión Wifi con 200Mbps de ancho de banda, tardó 13 minutos en todo el proceso!

Sin lugar a dudas, muy útil.

Configurando iSCSI a golpe de Powercli

Hoy os traigo una breve entrada sobre como configurar iSCSI sobre uno (o varios) hosts vSphere a golpe de teclado. Podríamos usar ansible, pero como estoy repasando para el VCAP-DCA... Lo haremos a base de Powershell!

Conectamos con el vCenter

Connect-VIServer vcenter.vfondevilla.com -User administrator@vsphere.local -Password P@ssw0rd!

Creamos el adaptador iSCSI

Get-VMHostStorage -VMhost vesx01.vfondevilla.com | Set-VMHostStorage -SoftwareIScsiEnabled $True

Creamos el target iSCSI en la HBA que acabamos de crear

get-vmhost vesx01.vfondevilla.com | get-vmhosthba -type "iscsi" |New-IScsiHbaTarget -Address 192.168.30.254

Bindeamos el adaptador a la interfaz VMK

(get-esxcli -VMHost vesx01.vfondevilla.com).iscsi.networkportal.add("vmhba33", $true, "vmk0")

Tras esto, haremos un rescan de las HBA

Get-VMHostStorage vesx03.vfondevilla.com -RescanAllHba

Et voilá, ya tenemos las LUNs disponibles para nuestros hosts!

vVNX en el homelab

Hoy os traigo este post, en el que os explicaré como he montado la vVNX de EMC, la appliance virtual de storage, en mi homelab.

Empezamos descargandola directamente desde la web de EMC, donde obtendremos el fichero OVA que conformará nuestra cabina de discos virtual.

Desplegamos el "nuevo cacharro que cuesta varios miles de €" en nuestra infraestructura de VMware, pero ojo! Pide 2 vCPU y 12GB de RAM, así que aseguraos que hay suficiente RAM disponible.

Una vez hayamos desplegado la OVA, obtendrá la IP por DHCP y podremos acceder a la interfaz por el puerto https.

Las credenciales por defecto, son Usuario:

admin

Contraseña:

Password123#

Una vez nos loguemos, tendremos que pasar por el Wizard de configuración de la vVNX, con los típicos pasos:

  • EULA
  • Cambio de contraseña de administrador

Y llegaremos a la parte del licenciamiento, donde nos tocará acceder al sitio de soporte de EMC donde introduciremos el System UUID, con esto nos devolverán un fichero LIC, que es la licencia de nuestra appliance.

Seguimos configurando:

  • DNS
  • NTP

Y llegaremos a la parte propiamente dicha de almacenamiento, donde podremos crear los storage pools que queramos.

Aquí hay varias opciones:

  • Usar VMDKs
  • Usar RDMs
  • Passthrough de la controladora RAID o HBA a la VM

En mi caso, ya que no tengo tarjetas RAID ni HBAs ni tengo budget asignado para comprarlas, he usado RDMs, ya trataré en otro post como crear estos RDMs sin tarjetas RAID ni HBA.

En mi caso, he creado dos Storage Pool distintos, cada uno en un SSD distinto, asignando el más pequeño de los dos el rol de "Performance Tier" y al más grande el de "Capacity Tier", aunque en este caso no tiene ningún tipo de diferencia. Tener dos Tiers distintos nos permite hacer uso del Autotiering de EMC, moviendo los datos calientes al Performance Tier, teniendo la licencia correcta

screen shot 2016-01-05 at 21 23 33

Seleccionaremos los discos que funcionarán con este Storage Pool

screen shot 2016-01-05 at 21 23 59

screen shot 2016-01-05 at 21 24 11

Posteriormente, podremos configurar iSCSI/NFS (según nuestras preferencias), en mi caso he creado dos interfaces iSCSI en dos subnets distintas, con el fin de aplicar Multipathing en el Nested Lab.

screen shot 2016-01-05 at 21 27 40

No configuramos la replicación, aunque podríamos con otro sistema vVNX y montar escenarios que hagan uso de Site Recovery Manager!

Tras haber creado el almacenamiento, pasaremos a configurar los Host ESX en la interfaz de nuestra vVNX. Haremos clic en "Hosts" y posteriormente "VMware Hosts". En la parte inferior de la página, pulsaremos en "Find ESX Hosts".

screen shot 2016-01-05 at 21 32 39

Introduciremos el nombre de nuestro vCenter y pulsaremos sobre "Find", nos pedirá las credenciales de nuestro usuario (de vCenter) y añadiremos los hosts a la vVNX.

screen shot 2016-01-05 at 21 34 00

screen shot 2016-01-05 at 21 34 26

Pasaremos a crear nuestro Datastore, pinchando sobre "Storage" y a su vez en "VMware Datastores".

Una vez nos pongamos a crear el Datastore, seleccionaremos la tecnología que queramos usar (NFS/VMFS)

screen shot 2016-01-05 at 21 37 25

Introduciremos el nombre y la descripción (esto último es opcional)

screen shot 2016-01-05 at 21 38 12

Seleccionaremos el Storage Pool sobre el que vamos a crear el Datastore

screen shot 2016-01-05 at 21 39 16

Seleccionamos la política de Snapshots automáticos a nivel de VNX (en mi caso lo he deshabilitado)

Configuramos los accesos de los Hosts que añadimos anteriormente, dando acceso a las LUN a los hosts.

Y ya podemos dar por finalizado la configuración!

La propia VNX se encargará de logarse contra el vCenter, y en los hosts que se lo hayamos indicado, crear el Datastore.

Usando Packer y Vagrant con nuestro vCenter como endpoint

Recientemente he descubierto una herramienta que encuentro de una utilidad muy evidente, llamada Packer, de los creadores de Vagrant. Es una vuelta de tuerca más al concepto de Infrastructure as Code, permitiéndonos crear de forma consistente VMs o instancias (dependiendo de la tecnología que estemos usando), de forma automatizada. Packer no viene a sustituir las herramientas especializadas de Configuration Management (Chef, Puppet, Ansible...), si no a complementarlas en una etapa más temprana, en lo que antes eran las golden images.

Otras herramientas de este mismo grupo cubren todo el espectro, desde la creación de máquina individuales (Vagrant, aunque todos sabemos que pueden hacer Vagrantfiles multi-machine), a toda la infraestructura, incluido configuración de DNS, en varios proveedores (Terraform).

La potencia de Packer es tal, que nos permitirá crear entornos completos (multimáquina) contra varias plataformas al mismo tiempo, de forma simultánea, asegurando la consistencia de las VMs/instancias.

Pero vayamos un poco al grano, me he planteado usar Packer para desplegar un grupo de hypervisores vSphere 6.0 contra nuestro sistema vCenter, de forma automática.

En primer lugar, tendremos que tener instalado:

  • Packer
  • VMware Fusion
  • el plugin de Vagrant de VMware Fusion
  • la herramienta OVFTool (disponible en my.vmware.com)

Adicionalmente, necesitaremos la ISO de vSphere 6.0 descargada en el mismo directorio donde estemos trabajando.

En mi repositorio de GitHub de packer-esxi-vcenter, tendréis los ficheros necesarios para realizar el build del sistema.

Editaremos el fichero esxi60-vcenter.json para reflejar los datos de nuestra infraestructura,

"post-processors": [ { "type": "vsphere", "cluster": "ManagementCluster", "datacenter": "Homelab", "datastore": "d01-vm02", "host": "vcenter.vfondevilla.com", "username": "administrator@vsphere.local", "password": "Passw0rd!", "vm_name": "vESX", "insecure": "true", "vm_network": "30-Lab" }

mientras editamos los datos de la ISO (nombre y hash md5): "iso_checksum": "478e2c6f7a875dd3dacaaeb2b0b38228", "iso_checksum_type": "md5", "iso_urls": [ "./VMware-VMvisor-Installer-6.0.0-2494585.x86_64.iso" ],

Una vez tengamos todo editado, ejecutaremos la comprobación

➜ packer-esxi git:(my) ✗ packer validate esxi60-vcenter.json

y ejecutaremos el build de la solución:

➜ packer-esxi git:(my) ✗ packer build esxi60-vcenter.json

Automáticamente, se creará la VM en VMware Fusion, se ejecutará la instalación, se parará la máquina y se hará el upload a nuestro vCenter. Voilá!

En un futuro artículo subiré al repo el fichero de configuración para crear 3 ESXi nested con la suficiente configuración para poder montar un Cluster VSAN.

El repo en cuestión lo tenéis en https://github.com/vFondevilla/packer-esxi-vcenter

Cambiar proveedor por defecto Vagrant

Finalmente me he decidido a comprar el plugin de Vagrant para VMware Fusion, y dejo este blog como nota mental de como cambiar el default provider en Vagrant, bajo zsh.

Editamos el fichero ~/.zshrc y añadimos lo siguiente al final:

# Vagrant Configuration
export VAGRANT_DEFAULT_PROVIDER=vmware_fusion

Con esto nos ahorramos el tener que configurarlo cada vez que abrimos la línea de comandos.