Cuando tenemos un pequeño entorno de VMWare vSphere tendemos a minimizar las necesidades y todos aquellos productos que rodean nuestra infraestructura son olvidados.
Uno de ellos es PowerCLI, el cual nos ayuda a realizar acciones automatizadas sobre nuestra infraestructura VMWare. A primera vista parece un producto encarado a las empresas grandes donde las tareas cotidianas se hacen repetitivas y se pierde mucho tiempo, pero la realidad es que es un producto que nos puede servir en cualquier situación, dando la comodidad de los comando y scripts de PowerShell de Windows.
Podemos descargar de manera gratuita la PowerCLI con tan solo registrarnos con nuestra cuenta de VMWare.
https://my.vmware.com/web/vmware/details?downloadGroup=PCLI550&productId=352
Una vez descargado vamos a instalarlo y lo primero que nos pedirá es que instalemos dos requisitos necesarios para poder ejecutar PowerCLI.
NOTA: Es obligatorio cerrar los navegadores, ya que uno de ellos es un plugin.
Una vez terminado nos empezará la instalación del PowerCLI, pero el primer mensaje nos avisa que la máquina sobre la que estamos instalando la consola no tiene permiso para la ejecución de scripts de PowerShell, por lo que deberemos cambiar la política de ejecución tal y como nos indica. Este paso se puede realizar posteriormente.
Ahora ya realizamos la instalación tal y como viene por defecto.
Ahora dispondremos de dos iconos en nuestros programas que serán las consolas de PowerCLI donde podremos ejecutar nuestros comandos o scripts en .ps1.
Como hemos comentado anteriormente tenemos que activar la ejecución de scripts ya que si no al abrir la consola nos devolverá este error.
Para ello abrimos la PowerShell de Windows y lanzamos el comando:
> Set-ExecutionPolicy RemoteSigned
Una vez podemos abrir nuestra PowerCLI correctamente, deberemos conectar contra un host y tan solo tenemos que lanzar el siguiente comando.
> Connect-VIServer -Server "host_esxi" -User "root" -Password "pass"
Como podemos observar en la propia instrucción le pasamos el usuario y la contraseña, si es un poco “violento” mostrar el password en texto plano podemos ejecutar la conexión sin especificar los valores -User y -Password, de tal modo que nos solicitará estas credenciales.
Aun así es un poco molesto lanzar las credenciales cada vez que queremos conectar, por esto mediante el VICredentialStore podemos guardar de manera encriptada las credenciales a nuestros host o vCenter de manera que si conectamos contra sin los parámetros -User y -Password, nos accederá automáticamente.
New-VICredentialStoreItem -Host "host_esxi" -User "root" -Password "pass"
Con el siguiente comando podemos ver todas las credenciales guardadas.
Get-VICredentialStoreItem
Y si queremos eliminar alguna credencial lo podemos hacer del siguiente modo.
Remove-VICredentialStoreItem -Host "host_esxi"
Espero que os haya servido, si tenéis alguna duda comentar el post y haré lo posible para ayudaros.
Gracias por el post 🙂