Búsqueda de sitios web

VMware PowerCLI: cómo instalar y administrar vSphere y ESXi


VMware vSphere PowerCLI es un conjunto de módulos de PowerShell para administrar la infraestructura de VMware desde el símbolo del sistema. Puede usar PowerCLI para obtener un estado de máquinas virtuales, almacenes de datos, redes o usuarios, administrar diferentes configuraciones, crear nuevos objetos y usar PowerShell en tareas de automatización para ESXi, vCenter Server, vSphere, vSAN y otros productos de VMware.

Actualmente, VMware está desarrollando una versión de PowerCLI solo para PowerShell Core (7.0+). Esta versión de PowerShell es multiplataforma y se puede usar en Windows, Linux o macOS. Solo se publican correcciones de seguridad para módulos PowerCLI anteriores para Windows PowerShell 5.x. Se recomienda utilizar una versión actualizada de PowerShell Core.

¿Cómo instalar el módulo VMware PowerCLI en Windows?

Puede instalar VMware PowerCLI en Windows en línea o sin conexión.

Para instalar PowerCLI desde la Galería de PowerShell en línea, ejecute el siguiente comando:

Install-Module -Name VMware.PowerCLI

PowerCLI vSphere versión 6.5 o anterior se distribuyó como un instalador de MSI.

Si desea instalar el módulo solo para el usuario actual:

Install-Module VMware.PowerCLI -Scope CurrentUser

De manera predeterminada, la última versión de PowerCLI se instala desde la Galería de PowerShell. Si desea instalar una versión específica de PowerCLI, puede visualizar la lista completa de versiones disponibles e instalar la que desee:

Find-Module -Name VMware.PowerCLI -AllVersions|select version
Install-Module -Name VMware.PowerCLI -RequiredVersion 12.4.0.17860403

Durante la instalación, se le pedirá que actualice su proveedor de NuGet. Además, confirme la instalación desde un repositorio de PowerShell Gallery que no sea de confianza. Puede convertirlo en uno de confianza usando el

Set_PSRepository

cmdlet.

Compruebe que los módulos PowerCLI se hayan instalado y muestre sus versiones:

Get-Module -ListAvailable VMware* | Select Name,version

Para actualizar la versión de su módulo PowerCLI, simplemente ejecute el comando:

Update-Module -Name VMware.PowerCLI

Si tiene instalado el módulo de administración de paquetes Choco en Windows, puede encontrar el módulo PowerCLI en el repositorio:

choco search vmware

e instalarlo:

choco install vmware-powercli-psmodule

El módulo PowerCLI aún no está disponible en winget.

Si desea instalar PowerCLI en una computadora aislada (entorno desconectado), puede usar un instalador fuera de línea.

  1. Descargue un archivo ZIP con el módulo PowerCLI https://code.vmware.com/web/tool/vmware-powercli (el tamaño del archivo ZIP con el VMware-PowerCLI 12.4.1 actual es de aproximadamente 80 MB);

  2. Descomprima el archivo en el directorio con los módulos de PowerShell en la computadora (puede obtener una lista de los directorios del módulo PoSh usando

    $env:PSModulePath

    ). Generalmente

    C:\Program Files\WindowsPowerShell\Modules

    se usa

  3. Desbloquear los archivos descargados de Internet:

    cd “c:\Program Files\WindowsPowerShell\Modules”
    Get-ChildItem * -Recurse | Unblock-File
  4. Abra la consola de PowerShell y asegúrese de que el módulo PowerCLI esté disponible ahora:

    Get-Module -Name VMware.PowerCLI -ListAvailable

Obtenga más información sobre la instalación sin conexión de los módulos de PowerShell.

Para importar el módulo PowerCLI a la sesión actual de PowerShell ISE o Visual Studio Code, ejecute el siguiente comando:

Import-Module VMware.VimAutomation.Core

Es posible que vea este mensaje de error al cargar el módulo:

Import-Module: File C:\Program Files\WindowsPowerShell\Modules\VMware.VimAutomation.Sdk\12.4.0.18627054\VMware.VimAutomation.Sdk.psm1 cannot be loaded because running scripts is disabled on this system.

Luego, debe configurar la política de ejecución de scripts de PowerShell. Para permitir el uso del módulo en la sesión actual:

Set-ExecutionPolicy Unrestricted -Scope Process

Puede usar un módulo PowerCLI instalado en una computadora remota. Para hacerlo, impórtalo de forma remota usando PSRemoting:

$session = New-PSSession -ComputerName mun-svr01

Importe el módulo PowerCLI a su computadora:

Import-Module -PSsession $session -Name VMware.VimAutomation.Core

No olvides cerrar la sesión cuando hayas terminado:

Remove-PSSession $session

Instalación del módulo PowerCLI en Linux

Puede instalar y usar PowerCLI tanto en Windows como en Linux. Primero, instale PowerShell Core en su host Linux. Luego ejecute los siguientes comandos en la consola para instalar VMware PowerCLI:

pwsh
Install-Module -Name VMware.PowerCLI

Importe el módulo a su sesión:

Import-Module VMware.PowerCLI

Comandos básicos de PowerCLI para administrar VMware vSphere y máquinas virtuales

Puede obtener una lista de cmdlets en los módulos PowerCLI de la siguiente manera (hay más de 2200 comandos disponibles):

Get-Command -Module *vmware*

Para deshabilitar la notificación del Programa de mejora de la experiencia del cliente (CEIP) de VMware:

Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCeip $false

Para conectarse a vCenter Server o a un host ESXi:

Connect-VIServer <vCenter_or_ESXi_FQDN>

Si utiliza un certificado SSL autofirmado para su vCenter Server, PowerCLI bloqueará la conexión:

Connect-VIServer Error: Invalid server certificate. Use Set-PowerCLIConfiguration to set the value for the InvalidCertificateAction option to Prompt if you'd like to connect once or to add a permanent exception for this server.
Additional Information: Could not establish trust relationship for the SSL/TLS secure channel with authority.

Para ignorar los certificados autofirmados:

Set-PowerCLIConfiguration -Scope AllUsers -InvalidCertificateAction Warn

Para mostrar una lista de máquinas virtuales registradas en su servidor ESXi (o vCenter):

Get-VM

Para mostrar solo máquinas virtuales apagadas:

Get-VM | Where {$_.Powerstate -ne “PoweredOn”} | Select Name, VMHost, NumCPU, MemoryMB, Version|Format-Table

Para iniciar una máquina virtual:

Start-VM -VM MUNTestVM1

Para reiniciar una máquina virtual correctamente (mediante el agente de herramientas de VMware):

Restart-VMGuest -VM MunTestVM1 -Confirm:$False

Para apagar una máquina virtual:

Shutdown-VMGuest -VM MunTestVM1 -Confirm:$False

Para mostrar una lista de instantáneas de una máquina virtual:

Get-VM -VM MunTestVM1 | Get-Snapshot| Format-List

Para mover una VM en ejecución a otro host mediante VMotion, se usa el comando Move-VM. Por ejemplo, desea mover todas las máquinas virtuales de mun-esxi1 a mun-esxi2:

Get-VMHost mun-esxi1|Get-Vm| Move-VM -Destination (Get-VMHost mun-esxi2)

Para crear una nueva máquina virtual, use el cmdlet New-VM:

New-VM -Name MunTestVM1 -VMHost mun-esxi1 -ResourcePool Production -DiskGB 20 -DiskStorageFormat Thin -Datastore MUN_MSA2000_Prod1

Utilizar el

Set-VM

cmdlet para cambiar la configuración de la máquina virtual.

Con los cmdlets de PowerCLI, puede interactuar con un sistema operativo invitado de sus máquinas virtuales. Para hacerlo, VMware Tools debe estar instalado en la VM. Puede actualizar VMware Tools como se muestra a continuación:

Get-VMGuest MunTestVM1 | Update-Tools

Con Invoke-VMS, puede ejecutar un script o un programa en un sistema operativo invitado de Windows:

$script = '"%programfiles%\Common Files\Microsoft Shared\MSInfo\msinfo32.exe" /report "%tmp%\inforeport"'
Invoke-VMScript -ScriptText $script -VM MunTestVM1 -HostCredential $hostCred -GuestCredential $VMCred -ScriptType Bat

Para copiar un archivo a todas las máquinas virtuales, ejecute este comando:

Get-VM | Copy-VMGuestFile -Source C:\PS\get-size.ps1 -Destination C:\PS\ - LocalToGuest -GuestUser administrator -GuestPassword P@ssdr0w2

El módulo contiene cmdlets para administrar clústeres, centros de datos, almacenes de datos y hosts ESXi:

Get-VMHost
Get-Datacenter
Get-Cluster
Get-Datastore
Get-VirtualPortGroup

Para mostrar una lista de hosts ESXi en un clúster:

Get-Cluster munprod1 | Get-VMHost | sort name

Ponga un host ESXi específico en modo de mantenimiento:

Set-VMhost -VMHost mun-esxi1 -State Maintenance

Para conectar un iSCSI LUN a un host ESXi y crear un almacén de datos VMFS en él:

Get-ScsiLun -VmHost mun-esxi1 | ft
New-Datastore -Name 'mun_iscsi_datastore' -VMHost mun-esxi1 -Path naa.6000xxxxxxxxxxxxxxxx -Vmfs

Consejo. PowerCLI funciona en modo de solo lectura con el hipervisor VMware vSphere gratuito. Esto significa que puede usar comandos para ver la configuración del host y la máquina virtual, pero no puede cambiarlos.

Scripts de ejemplo de PowerCLI

Hay algunos ejemplos del uso de PowerCLI para obtener información sobre los elementos de la infraestructura de VMware y para automatizar algunas acciones en el sitio web. Puede usar los ejemplos de los siguientes artículos para escribir sus propios scripts de PowerCLI:

  • Comprobación del espacio libre en disco en los almacenes de datos de VMFS

  • Asignar discos virtuales de VMware (archivos VMDK) y volúmenes de unidades de Windows

  • ¿Cómo encontrar máquinas virtuales de VMware por dirección IP o MAC?

  • Configurar SNMP en hosts VMware ESXi

  • ¿Cómo forzar el reinicio de una máquina virtual VMware atascada?

  • Inyectar controladores en la imagen de instalación de ESXi

  • Alarma de estado de necesidad de consolidación de máquinas virtuales de VMware

  • Actualización de la versión de hardware de la máquina virtual

vSphere PowerCLI es una poderosa herramienta para administrar y automatizar su infraestructura de VMware. PowerCLI incluye más de 2000 cmdlets para administrar la infraestructura de VMware local y en la nube (vSphere, vSAN, vRealize Operations Manager, vCloud Director, Site Recovery Manager, Horizon, NSX-T, VMware Cloud Services, VMware Cloud on AWS, etc.).

Artículos relacionados