VMware PowerCLI: vSphere ve ESXi Nasıl Kurulur ve Yönetilir


VMware vSphere PowerCLI, VMware altyapısını komut isteminden yönetmek için bir dizi PowerShell modülüdür. PowerCLI'yi sanal makinelerin, veri depolarının, ağların veya kullanıcıların durumunu almak, farklı ayarları yönetmek, yeni nesneler oluşturmak ve ESXi, vCenter Server, vSphere, vSAN ve diğer VMware ürünleri için otomasyon görevlerinde PowerShell'i kullanmak için kullanabilirsiniz.

Şu anda VMware, yalnızca PowerShell Core (7.0+) için bir PowerCLI sürümü geliştiriyor. Bu PowerShell sürümü, platformlar arasıdır ve Windows, Linux veya macOS'ta kullanılabilir. Windows PowerShell 5.x için önceki PowerCLI modülleri için yalnızca güvenlik düzeltmeleri yayınlandı. Güncellenmiş bir PowerShell Core sürümünün kullanılması önerilir.

Windows Üzerinde VMware PowerCLI Modülü Nasıl Kurulur?

VMware PowerCLI'yi Windows'a çevrimiçi veya çevrimdışı yükleyebilirsiniz.

PowerCLI'yi çevrimiçi olarak PowerShell Galerisi'nden yüklemek için aşağıdaki komutu çalıştırın:

Install-Module -Name VMware.PowerCLI

PowerCLI vSphere sürüm 6.5 veya öncesi, bir MSI yükleyicisi olarak dağıtılmıştı.

Modülü yalnızca mevcut kullanıcı için kurmak istiyorsanız:

Install-Module VMware.PowerCLI -Scope CurrentUser

Varsayılan olarak, en son PowerCLI sürümü PowerShell Galerisi'nden yüklenir. Belirli bir PowerCLI sürümünü yüklemek istiyorsanız, kullanılabilir sürümlerin tam listesini görüntüleyebilir ve istediğinizi yükleyebilirsiniz:

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

Kurulum sırasında NuGet sağlayıcınızı güncellemeniz istenecektir. Ayrıca, güvenilmeyen bir PowerShell Galeri deposundan yüklemeyi onaylayın. kullanarak onu güvenilir bir hale getirebilirsiniz.

Set_PSRepository

cmdlet.

PowerCLI modüllerinin kurulu olup olmadığını kontrol edin ve sürümlerini görüntüleyin:

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

PowerCLI modül sürümünüzü güncellemek için şu komutu çalıştırmanız yeterlidir:

Update-Module -Name VMware.PowerCLI

Windows'ta Choco paket yönetimi modülü kuruluysa, PowerCLI modülünü depoda bulabilirsiniz:

choco search vmware

ve kurun:

choco install vmware-powercli-psmodule

PowerCLI modülü henüz winget'te mevcut değil.

PowerCLI'yi yalıtılmış bir bilgisayara (bağlantısı kesilmiş ortam) yüklemek istiyorsanız, çevrimdışı bir yükleyici kullanabilirsiniz.

  1. PowerCLI modülü https://code.vmware.com/web/tool/vmware-powercli ile bir ZIP dosyası indirin (mevcut VMware-PowerCLI 12.4.1 ile ZIP arşivinin boyutu yaklaşık 80 MB'dir);

  2. Arşivi, bilgisayardaki PowerShell modüllerinin bulunduğu dizine açın (PoSh modülü dizinlerinin bir listesini

    $env:PSModulePath

    ). Genellikle

    C:\Program Files\WindowsPowerShell\Modules

    kullanıldı.

  3. İnternetten indirilen dosyaların engellemesini kaldırın:

    cd “c:\Program Files\WindowsPowerShell\Modules”
    Get-ChildItem * -Recurse | Unblock-File
  4. PowerShell konsolunu açın ve PowerCLI modülünün şu anda kullanılabilir olduğundan emin olun:

    Get-Module -Name VMware.PowerCLI -ListAvailable

PowerShell modüllerinin çevrimdışı kurulumu hakkında daha fazla bilgi edinin.

PowerCLI modülünü geçerli PowerShell ISE veya Visual Studio Code oturumuna aktarmak için aşağıdaki komutu çalıştırın:

Import-Module VMware.VimAutomation.Core

Modülü yüklerken şu hata mesajını görebilirsiniz:

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.

Ardından, PowerShell betiği yürütme ilkesini yapılandırmanız gerekir. Geçerli oturumda modülün kullanılmasına izin vermek için:

Set-ExecutionPolicy Unrestricted -Scope Process

Uzak bir bilgisayarda kurulu bir PowerCLI modülünü kullanabilirsiniz. Bunu yapmak için, PSRemoting'i kullanarak uzaktan içe aktarın:

$session = New-PSSession -ComputerName mun-svr01

PowerCLI modülünü bilgisayarınıza aktarın:

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

İşiniz bittiğinde oturumu kapatmayı unutmayın:

Remove-PSSession $session

PowerCLI Modülünü Linux'a Kurma

PowerCLI'yi hem Windows hem de Linux'ta kurabilir ve kullanabilirsiniz. İlk olarak, Linux sunucunuza PowerShell Core'u kurun. Ardından, VMware PowerCLI'yi yüklemek için konsolda aşağıdaki komutları çalıştırın:

pwsh
Install-Module -Name VMware.PowerCLI

Modülü oturumunuza aktarın:

Import-Module VMware.PowerCLI

VMware vSphere ve VM'leri Yönetmek için Temel PowerCLI Komutları

PowerCLI modüllerinde aşağıdaki gibi bir cmdlet listesi alabilirsiniz (2200'den fazla komut mevcuttur):

Get-Command -Module *vmware*

VMware Müşteri Deneyimi Geliştirme Programı (CEIP) bildirimini devre dışı bırakmak için:

Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCeip $false

VCenter Sunucusuna veya bir ESXi sunucusuna bağlanmak için:

Connect-VIServer <vCenter_or_ESXi_FQDN>

VCenter Sunucunuz için kendinden imzalı bir SSL sertifikası kullanıyorsanız, PowerCLI bağlantıyı engeller:

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.

Kendinden imzalı sertifikaları yoksaymak için:

Set-PowerCLIConfiguration -Scope AllUsers -InvalidCertificateAction Warn

ESXi (veya vCenter) sunucunuza kayıtlı sanal makinelerin bir listesini görüntülemek için:

Get-VM

Yalnızca kapalı VM'leri göstermek için:

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

Bir sanal makine başlatmak için:

Start-VM -VM MUNTestVM1

Bir sanal makineyi doğru şekilde yeniden başlatmak için (VMware araçları aracısını kullanarak):

Restart-VMGuest -VM MunTestVM1 -Confirm:$False

Bir sanal makineyi kapatmak için:

Shutdown-VMGuest -VM MunTestVM1 -Confirm:$False

Bir VM için anlık görüntülerin listesini görüntülemek için:

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

Çalışan bir VM'yi VMotion kullanarak başka bir ana bilgisayara taşımak için Move-VM komutu kullanılır. Örneğin, tüm VM'leri mun-esxi1'den mun-esxi2'ye taşımak istiyorsunuz:

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

Yeni bir sanal makine oluşturmak için New-VM cmdlet'ini kullanın:

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

Kullan

Set-VM

sanal makine ayarlarını değiştirmek için cmdlet.

PowerCLI cmdlet'lerini kullanarak, sanal makinelerinizin konuk işletim sistemiyle etkileşim kurabilirsiniz. Bunu yapmak için, VM'de VMware Tools kurulu olmalıdır. VMware Tools'u aşağıda gösterildiği gibi güncelleyebilirsiniz:

Get-VMGuest MunTestVM1 | Update-Tools

Invoke-VMS'yi kullanarak konuk bir Windows işletim sisteminde bir komut dosyası veya program çalıştırabilirsiniz:

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

Bir dosyayı tüm sanal makinelere kopyalamak için şu komutu çalıştırın:

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

Modül, kümeleri, veri merkezlerini, veri depolarını ve ESXi ana bilgisayarlarını yönetmek için cmdlet'ler içerir:

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

Bir kümedeki ESXi ana bilgisayarlarının listesini görüntülemek için:

Get-Cluster munprod1 | Get-VMHost | sort name

Belirli bir ESXi ana bilgisayarını bakım moduna geçirin:

Set-VMhost -VMHost mun-esxi1 -State Maintenance

Bir iSCSI LUN'u bir ESXi ana bilgisayarına bağlamak ve bunun üzerinde bir VMFS veri deposu oluşturmak için:

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

İpucu. PowerCLI, ücretsiz VMware vSphere Hypervisor ile salt okunur modda çalışır. Bu, ana bilgisayar ve VM ayarlarını görüntülemek için komutları kullanabileceğiniz ancak değiştiremeyeceğiniz anlamına gelir.

PowerCLI Örnek Komut Dosyaları

VMware altyapı öğeleri hakkında bilgi almak ve web sitesindeki bazı eylemleri otomatikleştirmek için PowerCLI kullanımına ilişkin bazı örnekler vardır. Kendi PowerCLI betiklerinizi yazmak için aşağıdaki makalelerdeki örnekleri kullanabilirsiniz:

  • VMFS Veri Depolarında Boş Disk Alanını Kontrol Etme

  • VMware Sanal Disklerini (VMDK Dosyaları) ve Windows Sürücü Birimlerini Eşleyin

  • IP veya MAC Adresine Göre VMware VM'leri Nasıl Bulunur?

  • VMware ESXi Ana Bilgisayarlarında SNMP'yi Yapılandırma

  • Sıkışmış Bir VMware VM'yi Yeniden Başlatmaya Zorlama Nasıl Yapılır?

  • Sürücüleri ESXi Kurulum Görüntüsüne Ekleme

  • VMware VM Konsolidasyonu Gerekli Durum Alarmı

  • VM Donanım Sürümünü Yükseltme

vSphere PowerCLI, VMware altyapınızı yönetmek ve otomatikleştirmek için güçlü bir araçtır. PowerCLI, bulut ve şirket içi VMware altyapısını (vSphere,vSAN, vRealize Operations Manager, vCloud Director, Site Recovery Manager, Horizon, NSX-T, VMware Cloud Services, VMware Cloud on AWS, vb.) yönetmek için 2000'den fazla cmdlet içerir.

İlgili makaleler