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:
Por lo tanto, podemos ejecutar el comando así:
|
|
Si abrimos el archivo folders.csv veremos una lista separada con comas con carpetas de VM y su correspondiente path.
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:
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:
|
|
Que nos deja la estructura de carpetas tal como estaba al inicio:
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.