Secuencia de comandos Basica PowerCLI para VMware vSphere

Previamente, observamos a PowerCLI – ¿qué es? ¿cómo instalarlo e intégralo dentro de Windows Powershell ISE? Ahora, echemos un vistazo al scripting básico incluyendo conectividad, PowerCLI commandlets, así como bucles.

Backup de VMware vSphere de NAKIVO

Backup de VMware vSphere de NAKIVO

Protección de datos integral para VMware vSphere y recuperación instantánea. Protección de destinos de backup locales, externos y en la nube.

Secuencia de comandos básicos de PowerCLI

Veamos algunos comandos básicos de PowerCLI commandlets para ver lo fácil que es comenzar a extraer información de nuestro entorno vSphere con PowerCLI. Tenga en cuenta que lo siguiente no significa de ninguna manera que sea un tutorial que abarque todo, sino más bien una introducción a PowerCLI y cómo comenzar a ejecutar commandlets y aprender a automatizar su entorno.

El primer comando que debemos ejecutar es el que realmente se conecta a nuestro entorno vSphere. Puede conectarse directamente a un host ESXi o a vCenter Server.

Para conectarse, ejecute el siguiente comando en una sesión de PowerShell habilitada para PowerShell:

  • connect-viserver –server 〈yourserver〉

Cuando ejecute el comando, se le solicitarán sus credenciales de inicio de sesión. Escriba su nombre de usuario y contraseña para su servidor ESXi o vCenter Server.

Basic PowerCLI scripting

Uno de los comandos más básicos que podemos ejecutar cuando nos conectamos a ESXi o vCenter es ver todas las máquinas virtuales en el entorno. Usamos el comando get-vm para mostrar información sobre las máquinas virtuales invitadas.

  • Get-VM – El comando get-vm enumera las máquinas virtuales que se ejecutan en el host conectado

get-vm commandlet

Para obtener información más detallada del get-vm commandlet, podemos mostrar la información completa con el comando

  • Get-VM | fl – Muestra información más detallada, como el sistema operativo invitado, los grupos de recursos, el nivel de versión del hardware de la máquina virtual, la carpeta en la que se encuentra y muchos otros detalles.

Get VM Full Information

Ahora, regresemos información útil específica del Get-VM commandlet. Encontremos las máquinas virtuales que están en el estado PoweredOff. Podemos obtener información de la Get-VM commandlet y luego canalizar eso hacia where-object para seleccionar la información específica que queremos consultar, en este caso PowerState. Como puede ver, hay muchos mundos de posibilidades para obtener información de varias máquinas virtuales y canalizar esta información a otra. PowerShell commandlet.

  • Get-VM | where-object {$_.PowerState –eq “PoweredOff”}

Get-VM PowerState

Como puede ver, esto muestra solo las máquinas virtuales que están en la “PoweredOff” PowerState. Esto puede ser extremadamente útil. Incluso podemos canalizar el resultado del comando anterior en el Start-VM commandlet. Básicamente, podemos obtener todas las máquinas virtuales apagadas y luego encenderlas.

  • Get-VM | where-object {$_.PowerState –eq “PoweredOff”} | Start-VM

Start-VM commandlet

¿Qué hay de apagar máquinas virtuales específicas? Podemos hacer eso también. Podemos llamar a la máquina virtual por nombre y luego usar el Stop-VMGuest commandlet que inicia un apagado del sistema operativo invitado.

  • Get-VM 〈yourvm〉 | Stop-VMguest

Stop-VMguest commandlet

Si no desea recibir la confirmación de la acción, podemos agregar el –confirm:false parametro:

Stop-VMguest –confirm:false

Digamos que queremos ver cuántas máquinas virtuales tenemos en ejecución que tienen más de 1 CPU asignada. De nuevo, podemos usar el where-object commandlet para seleccionar el NumCpu objeto.

  • Get-VM | where-object {$_.NumCpu –gt 1 }

where-object commandlet

Bucles PowerCLI

Los bucles le permiten realizar la misma operación varias veces contra objetos seleccionados o varias veces en bucle. Por ejemplo, con un bucle foreach, podemos realizar un bucle de una determinada acción varias veces. Se configura como el siguiente pseudo código:

foreach ($var in $vars){
Do something…
}

Si queremos obtener información específica sobre los objetos en los que vamos a realizar la acción, podemos, por ejemplo, recorrer una lista específica de máquinas virtuales de un archivo de texto. Para rellenar el archivo de texto, podemos ejecutar nuestro Get-VM commandlet seleccionando las propiedades que queremos, luego canalizamos eso a un archivo de texto. Luego podemos usar PowerShell para leer el archivo de texto y colocar las máquinas virtuales en una matriz en la que podemos recorrer y realizar una acción. A continuación, estamos agregando un nuevo adaptador de red a las máquinas virtuales en la lista.

Get-vm | where-object {$_.MemoryGB –eq 4 } | select -ExpandProperty Name | out-file c:\VMs.txt

$vms = get-content c:\VMs.txt

Foreach-object ($vm in $vms) {
new-networkadapter -vm $vms -NetworkName «〈Port group name〉» -Type «VMXNET3» –startconnected
}

Edicion gratuita de NAKIVO Backup & Replication: descargue y respalde sus máquinas virtuales VMware.

Recursos

Hay muchos recursos excelentes en la web, incluidos sitios de blogs personales, documentación oficial, ejemplos de códigos, etc. Lo que he descubierto es que, si puedes pensar en algo que quieras hacer, lo más probable es que haya alguien que ya haya escrito. una línea de código PowerCLI que hará lo que quieras. Lo bueno también es que normalmente puedes encontrar algo muy cercano a lo que quieres hacer, y con muy poca modificación después de aprender lo básico, puedes modificarlo para adaptarlo a tus necesidades. Al hacer esto también, está aprendiendo PowerCLI y cómo funciona, así como la forma de modificar el código para realizar la tarea que necesita realizar.

Un excelente lugar para comenzar con la documentación y otros recursos es el Sitio oficial de documentación y lanzamientos de VMware PowerCLI . Aquí, tú puedes descargar los binarios como también la Guía de usuario oficial

También hay muchos libros con secuencias de comandos y ejemplos de secuencias de comandos que pueden ser analizados a detalle y modificados. Recuerda que la comunidad de administradores de VMware que se encuentra ahí, quienes, la mayor parte del tiempo, están dispuestos en compartir el que conocimiento que han aprendido de alguien más en su camino en convertirse en expertos con PowerCLI. Localiza a aquellos en tu comunidad para ayudar con tan solo principios generales o específicos.

Pensamientos

Solo hemos arañado la superficie en los ejemplos anteriores que se mostraron. Cualquier tarea que realice repetitivamente, o que sea complicada de realizar en el cliente web, son excelentes candidatos para la creación de scripts con PowerCLI. De hecho, esa es la forma en que la mayoría de las personas se introducen en PowerCLI: tienen una tarea que necesitan realizar automáticamente o una acción que se basa en otras acciones en vSphere, o también acciones repetitivas que son adecuadas para las secuencias de comandos.

La mejor manera de aprender PowerCLI es descargarlo, instalarlo y comenzar a utilizarlo en un entorno de laboratorio, como un laboratorio doméstico. El poder real de un entorno VMware vSphere solo se desbloquea cuando ve el potencial de usar la automatización para tomar el control de vSphere. Entonces, comience a crear scripts con PowerCLI y nunca volverá a mirar hacia atrás.

Pruebe NAKIVO Backup & Replication

Pruebe NAKIVO Backup & Replication

Descargue la prueba gratuita para explorar las capacidades de protección de datos de la solución. 15 días gratis sin límites de funciones o capacidad y sin tarjeta de crédito.

Artículos recomendados