Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> เครื่องเสมือน

VMware PowerCLI:วิธีการติดตั้งและจัดการ vSphere และ ESXi

VMware vSphere PowerCLI เป็นชุดของโมดูล PowerShell เพื่อจัดการโครงสร้างพื้นฐาน VMware จากพรอมต์คำสั่ง คุณสามารถใช้ PowerCLI เพื่อรับสถานะของเครื่องเสมือน ที่เก็บข้อมูล เครือข่าย หรือผู้ใช้ จัดการการตั้งค่าต่างๆ สร้างอ็อบเจ็กต์ใหม่ และใช้ PowerShell ในงานอัตโนมัติสำหรับ ESXi, vCenter Server, vSphere, vSAN และผลิตภัณฑ์ VMware อื่นๆ

ปัจจุบัน VMware กำลังพัฒนาเวอร์ชัน PowerCLI สำหรับ PowerShell Core (7.0+) เท่านั้น PowerShell เวอร์ชันนี้เป็นแบบข้ามแพลตฟอร์มและอาจใช้ใน Windows, Linux หรือ macOS เฉพาะการแก้ไขด้านความปลอดภัยเท่านั้นที่เผยแพร่สำหรับโมดูล PowerCLI รุ่นก่อนหน้าสำหรับ Windows PowerShell 5.x ขอแนะนำให้ใช้เวอร์ชัน PowerShell Core ที่อัปเดต

จะติดตั้งโมดูล VMware PowerCLI บน Windows ได้อย่างไร

คุณสามารถติดตั้ง VMware PowerCLI ใน Windows ได้ทั้งแบบออนไลน์และออฟไลน์

ในการติดตั้ง PowerCLI จาก PowerShell Gallery ทางออนไลน์ ให้เรียกใช้คำสั่งด้านล่าง:

Install-Module -Name VMware.PowerCLI

PowerCLI vSphere เวอร์ชัน 6.5 หรือเก่ากว่าถูกแจกจ่ายเป็นโปรแกรมติดตั้ง MSI

หากคุณต้องการติดตั้งโมดูลสำหรับผู้ใช้ปัจจุบันเท่านั้น:

Install-Module VMware.PowerCLI -Scope CurrentUser

ตามค่าเริ่มต้น PowerCLI เวอร์ชันล่าสุดจะได้รับการติดตั้งจากแกลเลอรี PowerShell หากคุณต้องการติดตั้งเวอร์ชันเฉพาะของ PowerCLI คุณสามารถแสดงรายการเวอร์ชันทั้งหมดที่มีและติดตั้งเวอร์ชันที่คุณต้องการได้:

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

VMware PowerCLI:วิธีการติดตั้งและจัดการ vSphere และ ESXi

ระหว่างการติดตั้ง คุณจะได้รับแจ้งให้อัปเดตผู้ให้บริการ NuGet ของคุณ ยืนยันการติดตั้งจากที่เก็บ PowerShell Gallery ที่ไม่น่าเชื่อถือด้วย คุณสามารถทำให้เป็นไฟล์ที่เชื่อถือได้โดยใช้ Set_PSRepository cmdlet.

ตรวจสอบว่าโมดูล PowerCLI ได้รับการติดตั้งและแสดงเวอร์ชัน:

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

VMware PowerCLI:วิธีการติดตั้งและจัดการ vSphere และ ESXi

หากต้องการอัปเดตเวอร์ชันโมดูล PowerCLI ของคุณ เพียงเรียกใช้คำสั่ง:

Update-Module -Name VMware.PowerCLI

หากคุณมีโมดูลการจัดการแพ็คเกจ Choco ติดตั้งอยู่ใน Windows คุณจะพบโมดูล PowerCLI ในที่เก็บ:

choco search vmware

และติดตั้ง:

choco install vmware-powercli-psmodule

โมดูล PowerCLI ยังไม่พร้อมใช้งานใน winget

หากคุณต้องการติดตั้ง PowerCLI บนคอมพิวเตอร์แบบแยกส่วน (สภาพแวดล้อมที่ไม่ได้เชื่อมต่อ) คุณสามารถใช้ตัวติดตั้งแบบออฟไลน์ได้

  1. ดาวน์โหลดไฟล์ ZIP ด้วยโมดูล PowerCLI https://code.vmware.com/web/tool/vmware-powercli (ขนาดของไฟล์ ZIP ที่มี VMware-PowerCLI 12.4.1 ปัจจุบันอยู่ที่ประมาณ 80 MB);
  2. แตกไฟล์เก็บถาวรไปยังไดเร็กทอรีด้วยโมดูล PowerShell บนคอมพิวเตอร์ (คุณสามารถรับรายการไดเร็กทอรีโมดูล PoSh ได้โดยใช้ $env:PSModulePath ). โดยปกติ C:\Program Files\WindowsPowerShell\Modules ถูกนำมาใช้
  3. เลิกบล็อกไฟล์ที่ดาวน์โหลดจากอินเทอร์เน็ต:
    cd “c:\Program Files\WindowsPowerShell\Modules”
    Get-ChildItem * -Recurse | Unblock-File
  4. เปิดคอนโซล PowerShell และตรวจสอบให้แน่ใจว่าโมดูล PowerCLI พร้อมใช้งานในขณะนี้:Get-Module -Name VMware.PowerCLI –ListAvailable
อ่านเพิ่มเติมเกี่ยวกับการติดตั้งโมดูล PowerShell แบบออฟไลน์

ในการนำเข้าโมดูล PowerCLI ไปยังเซสชัน PowerShell ISE หรือ Visual Studio Code ปัจจุบัน ให้เรียกใช้คำสั่งต่อไปนี้:

Import-Module VMware.VimAutomation.Core

คุณอาจเห็นข้อความแสดงข้อผิดพลาดนี้เมื่อโหลดโมดูล:

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.

จากนั้น คุณต้องกำหนดค่านโยบายการดำเนินการสคริปต์ PowerShell เพื่ออนุญาตให้ใช้โมดูลในเซสชันปัจจุบัน:

Set-ExecutionPolicy Unrestricted -Scope Process

คุณสามารถใช้โมดูล PowerCLI ที่ติดตั้งบนคอมพิวเตอร์ระยะไกลได้ ในการดำเนินการ ให้นำเข้าจากระยะไกลโดยใช้ PSRemoting:

$session = New-PSSession -ComputerName mun-svr01

นำเข้าโมดูล PowerCLI ไปยังคอมพิวเตอร์ของคุณ:

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

อย่าลืมปิดเซสชั่นเมื่อเสร็จแล้ว:

Remove-PSSession $session

การติดตั้งโมดูล PowerCLI บน Linux

คุณสามารถติดตั้งและใช้งาน PowerCLI ทั้งใน Windows และ Linux ขั้นแรก ติดตั้ง PowerShell Core บนโฮสต์ Linux ของคุณ จากนั้นรันคำสั่งต่อไปนี้ในคอนโซลเพื่อติดตั้ง VMware PowerCLI:

pwsh
Install-Module -Name VMware.PowerCLI

VMware PowerCLI:วิธีการติดตั้งและจัดการ vSphere และ ESXi

นำเข้าโมดูลไปยังเซสชันของคุณ:

Import-Module VMware.PowerCLI

คำสั่ง PowerCLI พื้นฐานเพื่อจัดการ VMware vSphere และ VM

คุณสามารถรับรายการ cmdlets ในโมดูล PowerCLI ได้ดังนี้ (มีคำสั่งมากกว่า 2200 คำสั่ง):

Get-Command –Module *vmware*

VMware PowerCLI:วิธีการติดตั้งและจัดการ vSphere และ ESXi

หากต้องการปิดการแจ้งเตือน VMware Customer Experience Improvement Program (CEIP):

Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCeip $false

ในการเชื่อมต่อกับ vCenter Server หรือโฮสต์ ESXi:

Connect-VIServer <vCenter_or_ESXi_FQDN>

หากคุณกำลังใช้ใบรับรอง SSL ที่ลงนามเองสำหรับเซิร์ฟเวอร์ vCenter ของคุณ PowerCLI จะบล็อกการเชื่อมต่อ:

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.

หากต้องการละเว้นใบรับรองที่ลงนามเอง:

Set-PowerCLIConfiguration -Scope AllUsers -InvalidCertificateAction Warn

วิธีแสดงรายการเครื่องเสมือนที่ลงทะเบียนบนเซิร์ฟเวอร์ ESXi (หรือ vCenter):

Get–VM

วิธีแสดง VM ที่ปิดอยู่เท่านั้น:

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

VMware PowerCLI:วิธีการติดตั้งและจัดการ vSphere และ ESXi

ในการเริ่มเครื่องเสมือน:

Start-VM -VM MUNTestVM1

ในการรีสตาร์ท VM อย่างถูกต้อง (โดยใช้ตัวแทนเครื่องมือ VMware):

Restart-VMGuest -VM MunTestVM1 -Confirm:$False

ในการปิด VM:

Shutdown-VMGuest -VM MunTestVM1 -Confirm:$False

วิธีแสดงรายการสแน็ปช็อตสำหรับ VM:

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

ในการย้าย VM ที่รันอยู่ไปยังโฮสต์อื่นโดยใช้ VMotion จะใช้คำสั่ง Move-VM ตัวอย่างเช่น คุณต้องการย้าย VM ทั้งหมดจาก mun-esxi1 ไปยัง mun-esxi2:

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

ในการสร้างเครื่องเสมือนใหม่ ให้ใช้ New-VM cmdlet:

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

ใช้ Set-VM cmdlet เพื่อเปลี่ยนการตั้งค่าเครื่องเสมือน

เมื่อใช้ PowerCLI cmdlets คุณสามารถโต้ตอบกับระบบปฏิบัติการแขกของเครื่องเสมือนของคุณได้ ต้องติดตั้ง VMware Tools ใน VM คุณสามารถอัปเดต VMware Tools ดังที่แสดงด้านล่าง:

Get-VMGuest MunTestVM1 | Update-Tools

เมื่อใช้ Invoke-VMS คุณสามารถเรียกใช้สคริปต์หรือโปรแกรมในระบบปฏิบัติการ 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

ในการคัดลอกไฟล์ไปยัง VM ทั้งหมด ให้รันคำสั่งนี้:
Get-VM | Copy-VMGuestFile -Source C:\PS\get-size.ps1 -Destination C:\PS\ - LocalToGuest -GuestUser administrator -GuestPassword P@ssdr0w2

โมดูลประกอบด้วย cmdlets เพื่อจัดการคลัสเตอร์ ศูนย์ข้อมูล ที่เก็บข้อมูล และโฮสต์ ESXi:

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

วิธีแสดงรายการโฮสต์ ESXi ในคลัสเตอร์:

Get-Cluster munprod1 | Get-VMHost | sort name

ใส่โฮสต์ ESXi เฉพาะในโหมดการบำรุงรักษา:
Set-VMhost -VMHost mun-esxi1 -State Maintenance

ในการเชื่อมต่อ iSCSI LUN กับโฮสต์ ESXi และสร้างที่เก็บข้อมูล VMFS:
Get-ScsiLun -VmHost mun-esxi1 | ft
New-Datastore -Name 'mun_iscsi_datastore' -VMHost mun-esxi1 -Path naa.6000xxxxxxxxxxxxxxxx -Vmfs

เคล็ดลับ PowerCLI ทำงานในโหมดอ่านอย่างเดียวด้วย VMware vSphere Hypervisor ฟรี ซึ่งหมายความว่าคุณสามารถใช้คำสั่งเพื่อดูการตั้งค่าโฮสต์และ VM ได้ แต่ไม่สามารถเปลี่ยนแปลงได้

สคริปต์ตัวอย่าง PowerCLI

มีตัวอย่างการใช้ PowerCLI เพื่อรับข้อมูลเกี่ยวกับรายการโครงสร้างพื้นฐาน VMware และดำเนินการบางอย่างบนเว็บไซต์โดยอัตโนมัติ คุณสามารถใช้ตัวอย่างจากบทความต่อไปนี้เพื่อเขียนสคริปต์ PowerCLI ของคุณเอง:

  • กำลังตรวจสอบพื้นที่ว่างบนดิสก์บน VMFS Datastores
  • จับคู่ดิสก์เสมือน VMware (ไฟล์ VMDK) และโวลุ่มไดรฟ์ Windows
  • จะค้นหา VMware VM ด้วย IP หรือที่อยู่ MAC ได้อย่างไร
  • กำหนดค่า SNMP บนโฮสต์ VMware ESXi
  • จะบังคับรีสตาร์ท VMware ที่ติดค้างได้อย่างไร
  • จะทำให้ Windows Updates ในเทมเพลต VMware เป็นอัตโนมัติได้อย่างไร
  • การใส่ไดรเวอร์ลงในอิมเมจการติดตั้ง ESXi
  • ต้องมีการแจ้งเตือนสถานะการรวม VMware VM
  • กำลังอัปเกรดเวอร์ชันฮาร์ดแวร์ VM

vSphere PowerCLI เป็นเครื่องมือที่มีประสิทธิภาพในการจัดการและทำให้โครงสร้างพื้นฐาน VMware ของคุณเป็นแบบอัตโนมัติ PowerCLI มี cmdlets มากกว่า 2,000 รายการเพื่อจัดการโครงสร้างพื้นฐาน VMware บนคลาวด์และในสถานที่ (vSphere, vSAN, vRealize Operations Manager, vCloud Director, Site Recovery Manager, Horizon, NSX-T, VMware Cloud Services, VMware Cloud on AWS เป็นต้น)