Objective 8.1: Deploy ESXi Hosts Using Autodeploy
Describe the components and architecture of an Auto Deploy environment
vSphere Auto Deploy está pensado para utilizarse en implementaciones con un gran número de servidores ESXi, facilitando su instalación, actualización y mantenimiento. Los servidores ESXi no disponen de almacenamiento local, arrancan mediante la red, desde un servidor central de AutoDeploy. Para facilitar la configuración de los hosts en un entorno con AutoDeploy se utilizan perfiles de hosts, de forma que la configuración de los mismos se realiza en base a una configuración de referencia.
Existen dos tipos de instalación:
- Stateless caching (Almacenamiento en caché sin estado): de manera predeterminada, AutoDeploy no almacena la configuración o estado de ESXI en el disco del servidor. Un perfil define la imagen que se utiliza en el arranque de red y un perfil de host establece la configuración.
- Stateful installs (Instalaciones con estado) Se puede aprovisionar un host con AutoDeploy y configurar el host para que almacena la imagen de arranque en un disco local, de forma que los arranques posteriores el host lo hará desde el disco.
AutoDeploy sólo está disponible con la licencia Enterprise Plus.
La arquitectura de AutoDeploy consta de varios componentes:
Imagen001
- Auto Deploy server (Servidor de Auto Deploy): sirve imágenes y perfiles de host a servidores ESXi.
- Auto Deploy rules engine (Motor de reglas): envía información al servidor Auto Deploy sobre qué perfil de imagen y qué perfil de host servir a cada servidor ESXi.
- Image profiles (Perfiles de imagen): define la imagen que se va a utilizar para arrancar (o instalar) los servidores ESXi
- Host profiles (Perfiles de host): define la configuración específica de un servidor ESXi, como parámetros de red o almacenamiento.
- Host customization (Personalización de hosts): almacena datos que el usuario proporciona cuando se aplica un perfil a un host (direcciones IP, password de un usuario...)
- Host profile UI (Interfaz de usaurio del perfil de host): interfaz que utiliza el usuario para definir y aplicar los perfiles de host.
- Auto Deploy PowerCLI: se utiliza para
- Definir las reglas que se aplican a los hosts para determinar las imagenes y los perfiles de host
- Crear, editar, elimiar perfiles de imagen de servidores
Auto Deploy se apoya en servicios de red como pueden ser:
- Servidor DHCP
- Servidor TFTP
El proceso de arranque de un servidor ESXi con Auto Deploy sería el siguiente:
- El servidor físico arranca
- Se asigna una IP al servidor por DHCP
- En los parámetros del servidor DHCP se indica el servidor PXE al que conectar para obtener la imagen inicial
- El servidor conecta con el servidor Auto Deploy, que en base a las reglas definidas, le proporciona la imagen de instalación de ESXi
- Una vez que el servidor ha arrancado con la imagen correspondiente, se conecta al servidor vCenter y este le aplica el perfil del host correspondiente
- Se realizan las tareas para poner en funcionamiento el host con máquinas virtuales (ya sea de forma manual o a través del propio perfil del host)
Install and configure Auto Deploy
Auto Deploy es un servicio que se incluye junto al servicio vCenter, por lo que al instalar vCenter o desplegar el appliance de vCenter (VCSA) ya tenemos el servicio Auto Deploy instalado
Instalación y configuración de Auto Deploy
Para configurar el tipo de inicio de Auto Deploy, seguimos los siguientes pasos:
- Administration -> Deployment -> System Configuration -> Services -> Auto Deploy
Imagen002
- En el menu Actions, podemos arrancar, reiniciar o parar el servicio
Imagen 003
- También podemos definir el tipo de arranque del servicio.
- En Windows, el servicio está por defecto deshabilitado
- En VCSA, el servicio está por defecto en Manual.
Imagen004
- En la pestaña Manage podemos establecer los valores de los parámetros de configuración del servicio
Imagen 005
Configurar servicios adicionales
Descargamos los archivos aque se van a ubicar en el servidor TFTP
- Accedemos al objeto vCenter en el cliente Web -> Manage -> Settings -> Auto Deploy Imagen 006
- Pinchamos en el enlace "Download TFTP Boot ZIP" para descargar el archivo de configuración TFTP Imagen 007
- Descomprimimos el archivo en la carpeta del servidor TFTP
Configuramos el servicio DHCP
- Configuramos el scope del servidor DHCP que vamos a utilizar para asignar las direcciones a los servidores ESXi
Establecemos el valor para las siguientes opciones
066 Boot Server Host Name: el nombre del servidor TFTP Imagen008
067 Bootfile Name: nombre del archivo de arranque: "undionly.kpxe.vmw-hardwired" Imagen009
Podemos establecer reservar de direcciones IP para los servidores ESXi y las entradas de los nombres asociados en el servidor DNS
Instalar vSphere PowerCLI Si no lo tenemos instalado previamente, descargamos e instalamos vSphere PowerCLI
Utilize Auto Deploy Image Builder VMware PowerCLI scripts
Image Builder es un conjunto de comandos PowerShell que se instalan como un PSSnapin al instalar VMware PowerCLI. Tras instalar PowerCLi vemos que tenemos acceso a los comandos que nos proporcionan los PSSnapin
Name : VMware.DeployAutomation
PSVersion : 5.0
Description : This Windows Powershell snap-in contains vSphere Auto Deploy related cmdlets for
Rule-Based-Deployment
Name : VMware.ImageBuilder
PSVersion : 5.0
Description : This Windows PowerShell snap-in contains VMware ESXi Image Builder cmdlets used to
generate custom images.
Para poder utilizar los cmdlets deberemos "cargaros" con los comandos:
Add-PSSnapin VMware.ImageBuilder
Add-PSSnapin VMware.DeployAutomation
Conceptos:
- vSphere Installation Bundle (VIB): es un grupo de archivos que son empaquetados en una archivo (similar a un archivo ZIP)
Cada paquete VIB se publica con un nivel de aceptación que no se puede cambiar. El nivel de aceptación del host determina que VIB se puede instalar.
VMware admite los siguientes niveles de aceptación:
- VMwareCertified: tiene los requisitos de aceptación más estrictos. Son paquetes desarrollados por VMware.
- VMwareAccepted: los paquetes VIB pasan por pruebas de comprobación pero no tan completas como en el caso de VMwareCertified. Normalmente son paquetes desarrollados por partners
- PartnerSupported: son paquetes VIB publicados por partners de confianza de VMware. El partner es quien realiza todas las pruebas y VMware no comprueba los resultados.
- CommunitySupported: son paquetes VIB creados por personas o empresas fuera de los programas de partners de VMware. No son compatibles con el soporte técnico de VMware ni de los partners de VMware.
- Software Depot: es un repositorio que contiene una colección de archivos VIBs. Podemos acceder a estos repositorios de forma online (via HTTP) u offline (descargando los archivos VIB a nuestra máquina)
- Image Profile: es una imagen que permite instalar un servidor ESXi compuesta por una colección de archivos VIB y que se guardan como un archivo ZIP o ISO
Los pasos básicos para trabajar con Image Builder son:
- Obtener acceso a un software depot con los archivos VIB
- Importar el software depot a Image Builder
- Crear un Image Profile
- Modificar el Image Profile creado, añadiendo o eliminando paquetes VIB
- Guardar la imagen como archivo ZIP o ISO
De forma más detallada vamos a ver estos 5 pasos:
1. Obtener acceso a un software depot con los archivos VIB
Tenemos 2 tipos de repositorios:
Online: son repositorios a los que podemos acceder via HTTP. Algunas URLs que podemos utilizar de estos respositorios online
Offline: suelen ser archivos ZIP que están disponibles para descargar desde la página de VMware o desde sus partners. Podemos descargarlos desde:
- VMware: tenemos dos opciones
- Desde la página de descarga de ESXi Imagen
- Desde la página de descarga de parches: https://my.vmware.com/group/vmware/patch#search Imagen
- VMware: tenemos dos opciones
2. Importar el software depot a Image Builder
Para importar el Software Depot utilizamos el cmdlet
Add-EsxSoftwareDepot
Por ejemplo, para importar un repositorio online
Add-EsxSoftwareDepot -DepotUrl https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
Nota: con la versión de PowerCLI 6.3 no he podido trabajar con este repositorio online
y para importar un repositorio offline a partir de un archivo ZIP
Add-EsxSoftwareDepot update-from-esxi6.0-6.0_update02.zip
Podemos añadir también paquetes VIB de forma individual con el cmdlet
Add-EsxSoftwarePackage
Tras añadir el repositorio tendremos disponibles:
- Paquetes VIBs: que podemos ver con el cmdlet
Get-EsxSoftwarePackage
Por ejemplo:
PS C:\> Get-EsxSoftwarePackage | select -First 15 | ft -AutoSize
Name Version Vendor Creation Date
---- ------- ------ -------------
sata-sata-sil 2.3-4vmw.600.0.0.2494585 VMware 06/02/2015 2:37:02
lsi-mr3 6.605.08.00-7vmw.600.1.17.3029758 VMware 31/08/2015 7:24:20
scsi-ips 7.12.05-4vmw.600.0.0.2494585 VMware 06/02/2015 2:37:02
ipmi-ipmi-devintf 39.1-4vmw.600.0.0.2494585 VMware 06/02/2015 2:37:02
sata-sata-promise 2.12-3vmw.600.0.0.2494585 VMware 06/02/2015 2:37:02
net-bnx2x 1.78.80.v60.12-1vmw.600.0.0.2494585 VMware 06/02/2015 2:37:02
...
- Image Profiles: que podemos ver con el cmdlet
Get-EsxImageProfile
Por ejemplo:
PS C:\> Get-EsxImageProfile
Name Vendor Last Modified Acceptance Level
---- ------ ------------- ----------------
ESXi-6.0.0-20160104001-standard VMware, Inc. 28/12/2015 20:28:21 PartnerSupported
ESXi-6.0.0-20160104001-no-tools VMware, Inc. 28/12/2015 20:28:21 PartnerSupported
ESXi-6.0.0-20160101001s-standard VMware, Inc. 28/12/2015 20:28:21 PartnerSupported
ESXi-6.0.0-20160101001s-no-tools VMware, Inc. 28/12/2015 20:28:21 PartnerSupported
Nota: como norma general suelen existir 4 imagenes en los archivos ZIP de los parches de ESXi:
- ESXi-6.0.0-20160104001-standard – contiene todos los parches
- ESXi-6.0.0-20160104001-no-tools – contiene todos los parches salvo las VMware Tools
- ESXi-6.0.0-20160101001s-standard – contiene solo los parches de seguridad
- ESXi-6.0.0-20160101001s-no-tools – contiene solo los parches de seguridad sin las VMware Tools
3. Crear una imagen nueva
Si queremos crear una nuea imagen y no utilizar las disponibles al añadir el repositorio, lo podemos hacer con el cmdlet:
New-EsxImageProfile
Como ejemplo, podemos crear una imagen con el siguiente comando:
New-EsxImageProfile -NewProfile -Name ImageProfile01 -Vendor VMware -SoftwarePackage esx-base
Esto crea un perfil de nombre ImageProfile01, que unicamente tiene como paquete VIB "esx-base"
PS C:\> Get-EsxImageProfile ImageProfile01 | select *
Name : ImageProfile01
Vendor : VMware
Author :
Description :
CreationTime : 31/05/2016 21:22:08
ModifiedTime : 31/05/2016 21:22:08
ReadOnly : False
VibList : {esx-base 6.0.0-1.26.3380124}
AcceptanceLevel : VMwareCertified
Guid : 671b45d2-328a-45f2-b102-84738f4bffe3
Rules :
StatelessReady : True
Pero la opción más sencilla suele ser copiar una de las imagenes disponibles y modificar la nueva imagen, por ejemplo
New-EsxImageProfile -CloneProfile ESXi-6.0.0-20160104001-standard -Name ImageProfile02 -Vendor VMware
Este comando crea una nueva imagen, clonada de la ya existente que se llama "ESXi-6.0.0-20160104001-standard"
PS C:\> Get-EsxImageProfile ImageProfile02 | select *
Name : ImageProfile02
Vendor : VMware
Author :
Description : For more information, see http://kb.vmware.com/kb/2135120.
CreationTime : 28/12/2015 20:28:21
ModifiedTime : 28/12/2015 20:28:21
ReadOnly : False
VibList : {ima-qla4xxx 2.02.18-1vmw.600.0.0.2494585, sata-sata-sil 2.3-4vmw.600.0.0.2494585, lpfc 10.2.309.8-2vmw.600.0.0.2494585, lsi-mr3
6.605.08.00-7vmw.600.1.17.3029758...}
AcceptanceLevel : PartnerSupported
Guid : 472a4c68-072a-4851-b013-077acd6ca23f
Rules :
StatelessReady : True
4. Modificar la imagen creada, añadiendo o eliminando paquetes VIB
Podemo añadir un paquete VIB a una imagen con el cmdlet
Add-EsxSoftwarepackage
Y podemos eliminarlo con:
Remove-EsxSoftwarepackage
Por ejemplo, vamos a añadir el paquete "tools-light" a una de las imagenes que henemos creadas que se llama "ESXi-6u1-no-tools"
Vemos los paquetes que forman parte de la imagen
Get-EsxImageProfile ESXi-6u1-no-tools | Select-Object -ExpandProperty VibList | Sort-Object
Añadimos el paquete tools-light
Add-EsxSoftwarePackage -ImageProfile ESXi-6u1-no-tools -SoftwarePackage tools-light
Para eliminar el paquete ejecutamos
Remove-EsxSoftwarePackage -ImageProfile ESXi-6u1-no-tools -SoftwarePackage tools-light
Nota: puede darse la situación de que tengamos disponibles varias versiones de un mismo paquete, por ejemplo
PS C:\> Get-EsxSoftwarePackage tools-light
Name Version Vendor Creation Date
---- ------- ------ -------------
tools-light 6.0.0-1.17.3029758 VMware 31/08/2015 7:...
tools-light 6.0.0-0.14.3017641 VMware 26/08/2015 15...
Podríamos cargar la versión deseada de la siguiente forma:
Get-EsxSoftwarePackage tools-light -Version 6.0.0-0.14.3017641 | Add-EsxSoftwarePackage -ImageProfile ESXi-6u1-no-tools
5. Guardar la imagen como archivo ZIP o ISO
Una vez que tenemos la imagen deseada la podemos exportar a un archivo ISO
Export-EsxImageProfile -ImageProfile ESXi-6u1-no-tools -ExportToIso -FilePath s:\ESXi-6u1-no-tools.ISO
o ZIP
Export-EsxImageProfile -ImageProfile ESXi-6u1-no-tools -ExportToBundle -FilePath s:\ESXi-6u1-no-tools.ZIP
Una vez creado
Crear las reglas de depliegue
Una regla de despliegue (Deploy Rule) permite indicar que imagen de ESXi, perfil de host, o ubicación en el inventario de vCenter aplicar a cada host cuando se provisionan con Auto Deploy Una regla está definidia por los siguientes parámetros:
- Nombre (Name)
- Item: indica la imagen de ESXi, perfil de host u objeto del inventario de vCenter
- Pattern: permite identificar el host por diferentes valores
- vendor: fabricante del host
- model: modelo
- serial: número de serie
- hostname: nombre
- domain: dominio
- ipv4: dirección IP
- mac: MAC del interfaz de red de arranque
- asset: Etiquete
- oemstring: información del OEM en la BIOS Nota: podemos utilizar el parámetro -AllHost para aplicar una regla a todos los servidores
Es imporante entender que las reglas se dividien en:
- Reglas activas: son las reglas que se aplican a los hosts cuando arrancan
- Reglas de trabajo: son reglas que permiten probar cambios antes de que se activen.
Cuando trabajamos con reglas, se recomienda seguir el siguiente flujo de trabajo:
- Hacer cambios en el conjunto de reglas de trabajo
- Utilizar cmdlets para validar que las reglas de trabajo funcionan correctamente en un host
- Si es necesario, modificar y validar las reglas hasta que todo sea correcto
- Activar las reglas de trabajo
Vamos a crear una regla de forma que se aplique la imagen ESXi-6u1-no-tools a todos los hosts del fabricante VMware (máquinas virtuales) y que su IP esté en el rango 10.255.255.1 - 10.255.255.10
- Nos conectamos al servidor vCenter
Connect-VIServer -Server vcenter01.localdomain.local
Creamos la regla
$imagen = Get-EsxImageProfile ESXi-6u1-no-tools $deployrule = New-DeployRule -Name Regla01 -Item $imagen -Pattern ”vendor==VMware, Inc.”,“ipv4=10.255.255.1-10.255.255.10"
En el momento de crear la regla vemos como se copian los archivos necesarios en el repositorio de Auto Deploy (cuyo tamaño por defecto es de 2GB)
Downloading esx-base 6.0.0-1.17.3029758 Download finished, uploading to AutoDeploy... Upload finished. Downloading scsi-mpt2sas 19.00.00.00-1vmw.600.0.0.2494585 Download finished, uploading to AutoDeploy... Upload finished. Downloading ima-qla4xxx 2.02.18-1vmw.600.0.0.2494585 Download finished, uploading to AutoDeploy... Progress 49%
Obtenemos las reglas creadas
Get-DeployRule
Por ejemplo:
PS C:\> Get-DeployRule
Name : Regla01
PatternList : {ipv4=10.255.255.1-10.255.255.10, vendor==VMware, Inc.}
ItemList : {ESXi-6u1-no-tools}
- Si creamos una regla que no queremos que se aplique utilizamos
Si queremos modificar una regla utilizamos:Remove-DeployRule
Set-DeployRule
Por ejemplo
Get-DeployRule “Regla01” | Remove-DeployRule -Delete
- Activamos la regla con
Add-DeployRule
Por ejemplo:
Get-DeployRule “Regla01” | Add-Deployrule
Podemos obtener las reglas activas con:
Get-DeployRuleSet
Las reglas se aplican en el orden en el que se muestran. Para establecer preferencias podemos utilizar el parámetro -At en el cmdlet Add-DeployRule
- En el momento en el que activamos las reglas, si arrancamos un host que cumple alguno de los patrones se le aplica la regla y se arrancará la imagen correspondiente
Explain PowerCLI cmdlets for Auto Deploy
PS C:\> Get-Command -Module VMware.ImageBuilder
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Add-EsxSoftwareDepot 6.0.0.3695 VMware.ImageBuilder
Cmdlet Add-EsxSoftwarePackage 6.0.0.3695 VMware.ImageBuilder
Cmdlet Compare-EsxImageProfile 6.0.0.3695 VMware.ImageBuilder
Cmdlet Export-EsxImageProfile 6.0.0.3695 VMware.ImageBuilder
Cmdlet Get-EsxImageProfile 6.0.0.3695 VMware.ImageBuilder
Cmdlet Get-EsxSoftwareDepot 6.0.0.3695 VMware.ImageBuilder
Cmdlet Get-EsxSoftwarePackage 6.0.0.3695 VMware.ImageBuilder
Cmdlet New-EsxImageProfile 6.0.0.3695 VMware.ImageBuilder
Cmdlet Remove-EsxImageProfile 6.0.0.3695 VMware.ImageBuilder
Cmdlet Remove-EsxSoftwareDepot 6.0.0.3695 VMware.ImageBuilder
Cmdlet Remove-EsxSoftwarePackage 6.0.0.3695 VMware.ImageBuilder
Cmdlet Set-EsxImageProfile 6.0.0.3695 VMware.ImageBuilder
PS C:\> Get-Command -Module Vmware.DeployAutomation
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Add-DeployRule 6.0.0.3695 VMware.DeployAutomation
Cmdlet Apply-ESXImageProfile 6.0.0.3695 VMware.DeployAutomation
Cmdlet Copy-DeployRule 6.0.0.3695 VMware.DeployAutomation
Cmdlet Get-DeployOption 6.0.0.3695 VMware.DeployAutomation
Cmdlet Get-DeployRule 6.0.0.3695 VMware.DeployAutomation
Cmdlet Get-DeployRuleSet 6.0.0.3695 VMware.DeployAutomation
Cmdlet Get-VMHostAttributes 6.0.0.3695 VMware.DeployAutomation
Cmdlet Get-VMHostImageProfile 6.0.0.3695 VMware.DeployAutomation
Cmdlet Get-VMHostMatchingRules 6.0.0.3695 VMware.DeployAutomation
Cmdlet New-DeployRule 6.0.0.3695 VMware.DeployAutomation
Cmdlet Remove-DeployRule 6.0.0.3695 VMware.DeployAutomation
Cmdlet Repair-DeployImageCache 6.0.0.3695 VMware.DeployAutomation
Cmdlet Repair-DeployRuleSetCompliance 6.0.0.3695 VMware.DeployAutomation
Cmdlet Set-DeployOption 6.0.0.3695 VMware.DeployAutomation
Cmdlet Set-DeployRule 6.0.0.3695 VMware.DeployAutomation
Cmdlet Set-DeployRuleSet 6.0.0.3695 VMware.DeployAutomation
Cmdlet Switch-ActiveDeployRuleSet 6.0.0.3695 VMware.DeployAutomation
Cmdlet Test-DeployRuleSetCompliance 6.0.0.3695 VMware.DeployAutomation