Contents

Exportar carpetas de vCenter con PowerCLI

Si por algún motivo os ha tocado recrear un servidor vCenter por corrupción del mismo, actualización fallida (pese al gran actualizador del que dispone) o algún tipo de migración, y por casualidad éste disponía de muchas carpetas de VM, sabréis que recrearlas puede ser un auténtico calvario. Por una experiencia de este estilo me he decidido a crear un módulo de PowerCLI con el que exportar carpetas de vCenter para posteriormente recrearlas con un solo comando.

Algunas de las “bondades” de este módulo son:

  • Exportación e importación muy sencilla utilizando como archivo intermedio un CSV.
  • Soporte para carpetas con nombres duplicados.
  • Permite especificar el datacenter sobre el que exportar/importar.

Usando Export-VMFolderStructure para exportar carpetas de vCenter

Para utilizar Export-VMFolderStructure (e Import-VMFolderStructure) lo primero que deberemos hacer es descargar el módulo desde su página en Github e importarlo en nuestra sesión de PowerShell tal y como vimos en el post “Introducción a los módulos de PowerShell”.

Export-VMFolderStructure dispone de los siguientes parámetros:

  • -Path: Ruta completa en la que exportaremos el archivo .csv. Este parámetro es obligatorio.
  • -Datacenter: Nombre del datacenter sobre el que exportar los datos. Si no se especifica y sólo existe uno se utilizará ese, de haber más de uno se detiene la ejecución.
  • -Server: IP o nombre DNS del servidor vCenter sobre el que ejecutar el comando. Si ya se está conectado a un servidor vCenter se utiliza ese y se ignora el de este parámetro.

Para la demostración utilizaremos este vCenter de prueba:

/wp-content/uploads/2018/06/Carpetas-pre.png
Exportar carpetas de vCenter origen

Por lo tanto, podemos ejecutar el comando así:

1
Export-VMFolderStructure -Path C:\Export\folders.csv -Datacenter 'Datacenter Test' -Server 192.168.247.100

Si abrimos el archivo folders.csv veremos una lista separada con comas con carpetas de VM y su correspondiente path.

/wp-content/uploads/2018/06/CSV_Carpetas.png
Listado carpetas de vCenter exportadas

Con este archivo ya podemos proceder a importar la estructura de carpetas.

Importando carpetas de vCenter con Import-VMFolderStructure

El comando destinado a realizar la importación es Import-VMFolderStructure (¡sorpresa!). Este comando leerá el contenido del archivo .csv y recreará toda la jerarquía de carpetas exportada en el nuevo vCenter.

Para realizar la prueba borro el contenido de este mismo vCenter y volveremos a exportar las carpetas. Este es el resultado:

/wp-content/uploads/2018/06/vCenter-vacío.png
vCenter vacío

Para evitar comportamientos erróneos recomiendo ejecutar Import-VMFolderStructure sobre un servidor vCenter sin carpetas.

Import-VMFolderStructure dispone de los mismos parámetros que Export-VMFolderStructure:

  • -Path: Ruta completa del .csv con la estructura de carpetas a crear. Este parámetro es obligatorio.
  • -Datacenter: Nombre del datacenter sobre el que exportar los datos. Si no se especifica y sólo existe uno se utilizará ese, de haber más de uno se detiene la ejecución.
  • -Server: IP o nombre DNS del servidor vCenter sobre el que ejecutar el comando. Si ya se está conectado a un servidor vCenter se utiliza ese y se ignora el de este parámetro.

Por lo que podemos proceder a recrear las carpetas con:

1
Import-VMFolderStructure -Path C:\Export\folders.csv -Datacenter 'Datacenter Test' -Server 192.168.247.100

Que nos deja la estructura de carpetas tal como estaba al inicio:

/wp-content/uploads/2018/06/Carpetas-post.png
Carpetas de vCenter importadas

Como podréis ver se ha respetado la jerarquía de todas las carpetas, incluso las que tienen el mismo nombre.

Conclusión

Si bien recrear unas pocas carpetas a mano no es un problema, si os toca recrear varias decenas o algún que otro ciento de carpetas os recomiendo que tiréis de Export-VMFolderStructure y empleeis las horas que os ahorraréis en algo más productivo.

Si tenéis curiosidad por el código en si podéis consultar la página del script en GitHub, y si tenéis alguna sugerencia sobre el mismo las acepto encantado.