Image Builder

VMware vSphere Image Builder nos permitirá crear un hipervisor con los drivers, extensiones… que nosotros necesitamos en nuestros hosts a la hora de instalarlos o upgradearlos, personalizado por tanto nuestro instalador para ESXi 5, es además un componente necesario para Auto Deploy.

Una imagen es paquete de software que consiste de 4 componentes principales

  • Software base de ESXi, también conocido como “Core Hypervisor”
  • Drivers
  • CIM provider
  • Aplicaciones específicas o plug-in


A veces es necesario crear una imagen personalizada de ESXi para nuestros hosts, ya que dependiendo de nuestro entorno puede que necesitemos agregarle componentes que la imagen ‘standard’ no trae, normalmente drivers, aunque podremos agregarle además: proveedores CIM, plugins y el hipervisor ESXi base!

Un nuevo término de VMware es CIM (VMware Cloud Infrastructure and Management), básicamente incluye todos los elementos para construir una nube (ESXi, vCenter, vShield y vCloud Director) en un sólo paquete.

Componentes


  • VIB: (VMware Infrastructure Bundle) son paquetes de software de ESXi. VMware y partners lo usan para empaquetar:
    • la imagen base de ESXi (una imagen ESXi contiene uno a mas VIBs)
    • drivers,
    • proveedores CIM
    • plugins.


à

Los VIBs están disponibles en “software depots”. Podemos usar los VIBs para crear y customizar imágenes ISO o hacer un UPGRADE a un host ESXi

  • Image profile: Define una imagen ESXi standard. Un “image profile” siempre contiene una base VIB (esx-base) y puede incluir más VIBs


 

  • Depot: Es un almacén que contiene VIBs
    e images profiles (standard), podrá estar guardado en un fichero ZIP (offline depot) o en una carpeta de un servidor web (Online Depot)



Un Depot contiene todo lo que viene en una ISO normal (si exportamos este sin ninguna modificación, obtendremos una coincidencia exacta con la ISO de VMware

Podemos exportar una “imagen profile” que está dentro del Depot, para exportar una ISO para instalación ESXi, o en empresas grandes crear “Depots” internos para provisionar ESXi con AutoDeploy.

  • Add-EsxSoftwareDepot -DepotUrl <path_to_depot_zip>
  • Get-EsxImageProfile
  • Export-EsxImageProfile -ImageProfile <my_profile> -ExportToIso -FilePath iso

 

 

Implementación de una imagen ESXi

La imagen standard que nos proporciona VMware se baja de su página web, pero el problema puede ser que esa imagen extandard (proporcinada en ISO, ZIP) quizás no contenga los drivers de un hardware especifico que tenemos, o algún plugin de algún vendedor especifico

Aquí vemos como el fichero .ZIP es un Depot que contiene VIBs, image profile (standard) el cual podemos usar con image builder y autodeploy


Sin embargo esta imagen standard que solo tiene drivers base, puede no tener el VIB del driver de una nueva NIC que hemos comprado, por lo que necesitaríamos crear una imagen con ese driver, o quizás un plugin


 

Que es image builder

Image Builder es una utilidad, bajo PowerCLI, que nos permite customizar imágenes ESXi:

  • Podremos crear y administrar VIBs,
  • Images Profile
  • generar imágenes de ESXi (bien en ISO o ZIP).

Podemos crear un perfil ESXi, clonando un “image profile” (que está dentro del Depot) y modificarlo, o crear una imagen nueva y añadir los VIBs del ESXi, drives, Image Profiles


 

PASO 1:

Debemos asegurarnos que una vez instalado el PowerCli el Execution Policy es “unrestricted

  • Set-ExecutionPolicy unrestricted


  • Connect-VIserver –Server <vCenter server>

 

PASO 2: Descargar los Depots, VIB,s de drivers añadir a la imager

Nos bajamos los Depots para tener los images profiles y VIBs (drivers) de vendors que queramos agregar para tener nuestra imagen personalizada


Nota: en la página de VMware solo aparece como Depot.zip, cuando se trata de la primera versión (por ejemplo 5.0), ahí si podemos bajarlo



Cuando estamos con la siguiente versión, ya no nos aparece como depot.zip, sino que nos aparece como Update01.zip



PASO 3: importar un Depot a Image Builder

Importaremos el software depot (offline bundle) que nos acabamos de bajar, al Image Builder para que los administre. Esto añadirá VIBs del Depot

Add-EsxSoftwareDepot -DepotUrl <path to depot>

  • Get-EsxSoftwareDepot    //no nos aparecerá nada en el Builder
  • Add-EsxSoftwareDepot -DepotUrl C:\depots\update-from-esxi5.1-5.1_update01.zip
  • Add-EsxSoftwareDepot -DepotUrl https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml


Con el comando Get-EsxSoftwareDepot eliminaría de Image Builder

Ahora Image Builder controla los Image profiles, y los paquetes (VIBs) que están dentro

El offline bundle (update01.zip) contiene Images profiles (con sus VIBs). Con el comando Get-EsxImageProfile veremos los profiles que tenemos. Vemos que tenemos 4 profiles. este depot o cerrando PowerCli

  • Get-EsxImageProfile    //muestra los profile que maneja la aplicación Image Builder


También podremos ver los VIBs que contienen el depot importado a image Builder. No es de un profile en concreto, si no lo que contiene el Depot en general

  • Get-EsxSoftwarePackage


Paso 4: Crear un nuevo Image profile o clonar un Image Profile

Podemos crear un nuevo Image profile, en el cual añadir los VIBs que queramos, o podemos clonar un “Image Profile“, para trabajar a partir de el

Clonando:


New-EsxImageProfile –CloneProfile <image_profile> -Name <profile_name>

  • New-EsxImageProfile -CloneProfile ESXi-5.1.0-20130402001-standard -Name “Jose_vSphere51”


Nos aparecerá el nuevo profile en la administración de Image Builder. Nuestro profile tendrá los VIBs que tuviera el estandard


Nuevo

Le indicaríamos que VIBs agregamos a este Nuevo Image profile. Estos VIBs los controla Image Builder por el depot importado

  • New-EsxImageProfile –NewProfile –Name “jose_vSphere51_new” –Softwarepackage esx-base,esx-tboot,nics-drivers

 

Paso 4A: Añadir / borrar VIBs existentes (opcional)

Podemos eliminar o añadir VIBs que ya están en un Depot a nuestro image profile cargado. Es útil si hemos creado un Image Profile vacío en el cual le hemos puesto el VIB base (esx-base) y le queremos añadir los VIB de un Vendor (este Depot seria proporcionado por HP)

Supongamos que en nuestro image profile (jose_vsphere51_new), el cual tiene los VIB; esx-base, nics-driver y esx-tboot , le queremos cargar drives de HP que vienen en el software depot que nos bajamos de internet, ya que nuestros ESX son de HP

Añadir un VIB integrado del Depot a nuestro Image Profile corporativo

Listamos los VIBs con Get-EsxSoftwarePackage pero que nos muestre en “vendor” de HP

  • Get-EsxSoftwarePackage | where {$_.Vendor –eq “Hewlett-Packard”}


Añadiríamos estos VIBs a nuestro Image profile personalizado

  • Add-EsxSoftwarePackage –ImageProfile “jose_vSphere51_new” –softwarePackage hp-ams, char-hpcru,hp-smx-provider


 

 

 

Eliminar un VIB de un Image Profile

Supongamos que hemos clonado un Image profile, pero hay varios drivers (VIB,s) que no se van a usar y lo queremos eliminar para aligerar la imagen. Podemos eliminar los VIB con el parámetro “SoftwarePackage

Listamos a ver que software package eliminamos del Image builder, por ejemplo sata-sata-promise, ya que como lo hemos clo


  • Remove-EsxSoftwarePackage –ImageProfile “jose_vSphere51_new” -SoftwarePackage sata-sata-promise


Nuestro Image Profile ya no contendrá este paquete

 

Paso 5: Añadir nuestro Driver personalizado

Podemos usar “Add-EsxSoftwarePackage” and “Remove-EsxSoftwarePackage” para añadir y eliminar VIBs a nuestro image profile “Jose_vSphere51”

Con el comando “Get-EsxSoftwarePackage” veremos el contenido del Depot que hemos cargado antes y podremos borrar todos los drivers que no vayamos a usar con el fin de hacer una imagen más light.


Agregamos el driver a Image Builder para poder gestionarlo

  • Add-EsxSoftwareDepot -DepotUrl C:\Depots\qlcnic-esx50-5.1.157-offline_bundle-1089431.zip


Comprobamos que ya está el driver cargado en image Builder


Ahora debemos añadir este driver a nuestro image profile

  • Add-EsxSoftwarePackage -ImageProfile Jose_vSphere51 -SoftwarePackage net-qlcnic


Ya tenemos nuestro Image profile listo para exportar a ISO o ZIP

 

 

 

 

Paso 6: Exportar Image Profile a ISO o ZIP

Ahora podremos exportar a ISO (exportToIso) o ZIP (exportToBundle)

  • Export-EsxImageProfile -ImageProfile Jose_vSphere51 -ExportToIso -FilePath C:\Depots\jose51.iso
  • Export-EsxImageProfile -ImageProfile Jose_vSphere51 -ExportToBundle -FilePath C:\Depots\jose51.ZIP

Una vez creado el paquete podremos ver como no está el sata-sata-promise




 

Como crear una ISO de los depots de VMWARE

Podemos agregar la URL de depots de VMware hara que nos muestre todos los que tiene

  • Add-EsxSoftwareDepot -DepotUrl https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

Al listar los EsxImagesProfiles nos salen un montón


El problema que nos pasa es que si intentamos exportar por ejemplo ESXi-5.1.0-20130402001-standard, nos dice que hay dos con el mismo nombre y que no es posible, que se podríamos crear una variable

  • Export-EsxImageProfile -ImageProfile ESXi-5.1.0-20130402001-standard -ExportToIso -FilePath C:\Depots\final51.iso


Entonces como podemos hacer para coger un de ellos. En primer lugar, los volvemos a listar pero con format-List

 

  • Get-EsxImageProfile | fl


Ahora creamos una variable en la que guardaremos la salida del get-esxImageProfile per que tenga el Guid xxxxxx. La salida será una sola imagen

  • $v = Get-EsxImageProfile | where {$_.Guid -eq “d09ac074940011e2accb0050569d0039”}

Ahora ejecutamos el comando de exportación a ISO, y como ImageProfile le ponemos la variable. Ya nos lo creara sin problema

  • Export-EsxImageProfile -ImageProfile $v -ExportToIso -FilePath C:\Depots\my.iso

 

 

How to simplify and automate VMware ImageBuilder with the ESXi-Customizer-PS script (English)

I published a new and improved version of my ESXi-Customizer-PS script today. This PowerCLI script greatly simplifies and automates the process of creating fully patched and customized ESXi 5.x installation ISOs using the VMware PowerCLI ImageBuilder snapin.

Over time I added more and more options to the script, and I think it is time now to provide a detailed tutorial to show how to make efficient use of it. Grab the latest version (1.3) from my Google Code page and give it a try. The only prerequisite you need is an installation of the currentVMware vSphere PowerCLI.


1. The simplest use case: Create an ESXi 5.x installation ISO with the current patch level

  • .\ESXi-Customizer-PS-v1.3-ps1

If you call the script without any parameters then it will just connect to the VMware ESXi Online depot and create an ESXi 5.x installation ISO with the most current patch level from it:

How to create a fully patched ESXi 5.x installation ISO

The ISO file will be stored in the directory where the script itself resides (see 5. for how to override this).

2. Create an installation ISO from an Offline bundle

Export a patch offline bundle into an installation ISO

 

 

 

 

3. Add 3rd-party Offline bundles (e.g. hardware drivers)

.\ESXi-Customizer-PS-v1.3-ps1 –obDir u:\temp\zip


If you want to add 3rd-party Offline bundles (e.g. hardware drivers) to the exported ISO then you just need to copy them into a common directory and specify that using the -obDir parameter. In the following example I have copied a self-made Offline bundle (that adds a firewall rule to allow incoming NTP queries, see my earlier post) into the directory U:\temp\zip:

Create a customized ISO by adding Offline bundles

Please note: If the package(s) added with the Offline bundle(s) require an acceptance level that is lower than that of the ImageProfile (like in this example) then the ImageProfile’s acceptance level will be automatically adjusted.

4. Adding drivers from the HP Online depot

HP provides an own Online depot (http://vibsdepot.hp.com) with hardware management packages for their ProLiant servers. If you are using HP hardware for your VMware hosts then you can use the parameters -hp and -hprel to add these packages to your customized ISO.

With the -hprel parameter you can select a specific release set of the HP packages. These are named after the month of their release in the format mmmYYYY (jun2012 in the below example, seehttp://vibsdepot.hp.com/hpq/ for a current listing). If you omit the -hprel parameter then the script will use the most current versions of the packages.

Adding the HP Online depot to the customized ISO


5. Other options

  • -isoDir: lets you specify a directory for storing the customized ISO file (the default is the script directory)
  • -sip: displays a menu of all available ImageProfiles and lets you pick one of them (instead of automatically choosing the most current standard profile). Use this if you want to intentionally use an older patch level or a -notools profile.
  • -ipname : by default the name of a customized ImageProfile is automatically derived from the original profile’s name (by adding the string “-customized”). You can override this behavior by specifying an arbitrary ImageProfile name using this parameter.
  • -nsc: Using this parameter will add the -NoSignatureCheck flag to the command that exports the ImageProfile into the ISO file. You will need this if you want to add incorrectly signed packages (like HP’s jun2012 version of the hpvsa driver, see this community thread for more background) which otherwise cause error messages like “Could not find a trusted signer”.
  • -test: This flag is useful if you just want to quickly test and see what the script is going to do without actually exporting/creating the ISO file.

6. Help!

 

Of course you can combine most of the aforementioned parameters, and – if you do not have this tutorial at hand – you can always use the -help switch to get an overview on how to build more complex script calls:

 

 

 


 

Be the first to comment

Leave a Reply