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:

  1. El servidor físico arranca
  2. Se asigna una IP al servidor por DHCP
  3. En los parámetros del servidor DHCP se indica el servidor PXE al que conectar para obtener la imagen inicial
  4. El servidor conecta con el servidor Auto Deploy, que en base a las reglas definidas, le proporciona la imagen de instalación de ESXi
  5. 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
  6. 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:

  1. Obtener acceso a un software depot con los archivos VIB
  2. Importar el software depot a Image Builder
  3. Crear un Image Profile
  4. Modificar el Image Profile creado, añadiendo o eliminando paquetes VIB
  5. 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:

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"

  1. Vemos los paquetes que forman parte de la imagen

    Get-EsxImageProfile ESXi-6u1-no-tools | Select-Object -ExpandProperty VibList | Sort-Object
    
  2. Añadimos el paquete tools-light

    Add-EsxSoftwarePackage -ImageProfile ESXi-6u1-no-tools -SoftwarePackage tools-light
    
  3. 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:

  1. Hacer cambios en el conjunto de reglas de trabajo
  2. Utilizar cmdlets para validar que las reglas de trabajo funcionan correctamente en un host
  3. Si es necesario, modificar y validar las reglas hasta que todo sea correcto
  4. 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

  1. Nos conectamos al servidor vCenter
    Connect-VIServer -Server vcenter01.localdomain.local
    
  2. 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%
    
  3. 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}
  1. Si creamos una regla que no queremos que se aplique utilizamos
    Remove-DeployRule
    
    Si queremos modificar una regla utilizamos:
    Set-DeployRule
    

Por ejemplo

Get-DeployRule “Regla01” | Remove-DeployRule -Delete
  1. 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

  1. 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

Implement Host Profiles with an Auto Deploy of an ESXi Host

Utilize Host Profile answer files during an Auto Deploy of an ESXi Host

Deploy/Manage multiple ESXi Hosts using Auto Deploy

Given a scenario, explain the Auto Deploy deployment model needed to meet a business requirement

results matching ""

    No results matching ""