VMware vSphere PowerCLI là một tập hợp các mô-đun PowerShell để quản lý cơ sở hạ tầng VMware từ dấu nhắc lệnh. Bạn có thể sử dụng PowerCLI để nhận trạng thái của máy ảo, kho dữ liệu, mạng hoặc người dùng, quản lý các cài đặt khác nhau, tạo đối tượng mới và sử dụng PowerShell trong các tác vụ tự động hóa cho ESXi, vCenter Server, vSphere, vSAN và các sản phẩm VMware khác.
Hiện tại, VMware đang phát triển phiên bản PowerCLI chỉ dành cho PowerShell Core (7.0+). Phiên bản PowerShell này đa nền tảng và có thể được sử dụng trong Windows, Linux hoặc macOS. Chỉ các bản sửa lỗi bảo mật được phát hành cho các mô-đun PowerCLI trước đó dành cho Windows PowerShell 5.x. Bạn nên sử dụng phiên bản PowerShell Core cập nhật.
Cách cài đặt Mô-đun VMware PowerCLI trên Windows?
Bạn có thể cài đặt VMware PowerCLI trong Windows trực tuyến hoặc ngoại tuyến.
Để cài đặt PowerCLI từ Thư viện PowerShell trực tuyến, hãy chạy lệnh bên dưới:
Install-Module -Name VMware.PowerCLI
Nếu bạn chỉ muốn cài đặt mô-đun cho người dùng hiện tại:
Install-Module VMware.PowerCLI -Scope CurrentUser
Find-Module -Name VMware.PowerCLI -AllVersions|select version
Install-Module -Name VMware.PowerCLI -RequiredVersion 12.4.0.17860403
Trong quá trình cài đặt, bạn sẽ được nhắc cập nhật nhà cung cấp NuGet của mình. Ngoài ra, hãy xác nhận cài đặt từ kho lưu trữ PowerShell Gallery không đáng tin cậy. Bạn có thể đặt nó thành một địa chỉ đáng tin cậy bằng cách sử dụng Set_PSRepository
lệnh ghép ngắn.
Kiểm tra xem các mô-đun PowerCLI đã được cài đặt chưa và hiển thị các phiên bản của chúng:
Get-Module -ListAvailable VMware* | Select Name,version
Để cập nhật phiên bản mô-đun PowerCLI của bạn, chỉ cần chạy lệnh:
Update-Module -Name VMware.PowerCLI
choco search vmware
và cài đặt nó:
choco install vmware-powercli-psmodule
Mô-đun PowerCLI chưa có sẵn trong bộ cánh.
Nếu bạn muốn cài đặt PowerCLI trên một máy tính bị cô lập (môi trường bị ngắt kết nối), bạn có thể sử dụng trình cài đặt ngoại tuyến.
- Tải xuống tệp ZIP với mô-đun PowerCLI https://code.vmware.com/web/tool/vmware-powercli (kích thước của tệp nén ZIP với VMware-PowerCLI 12.4.1 hiện tại là khoảng 80 MB);
- Giải nén tệp lưu trữ vào thư mục có mô-đun PowerShell trên máy tính (bạn có thể lấy danh sách các thư mục mô-đun PoSh bằng cách sử dụng
$env:PSModulePath
). Thông thườngC:\Program Files\WindowsPowerShell\Modules
được sử dụng. - Bỏ chặn các tệp được tải xuống từ Internet:
cd “c:\Program Files\WindowsPowerShell\Modules”
Get-ChildItem * -Recurse | Unblock-File - Mở bảng điều khiển PowerShell và đảm bảo rằng mô-đun PowerCLI hiện khả dụng:
Get-Module -Name VMware.PowerCLI –ListAvailable
Để nhập mô-đun PowerCLI vào phiên PowerShell ISE hoặc Visual Studio Code hiện tại, hãy chạy lệnh sau:
Import-Module VMware.VimAutomation.Core
Bạn có thể thấy thông báo lỗi này khi tải mô-đun:
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.
Sau đó, bạn phải định cấu hình chính sách thực thi tập lệnh PowerShell. Để cho phép sử dụng mô-đun trong phiên hiện tại:
Set-ExecutionPolicy Unrestricted -Scope Process
Bạn có thể sử dụng mô-đun PowerCLI được cài đặt trên máy tính từ xa. Để làm điều đó, hãy nhập nó từ xa bằng PSRemoting:
$session = New-PSSession -ComputerName mun-svr01
Nhập mô-đun PowerCLI vào máy tính của bạn:
Import-Module -PSsession $session -Name VMware.VimAutomation.Core
Đừng quên đóng phiên khi bạn hoàn thành:
Remove-PSSession $session
Cài đặt Mô-đun PowerCLI trên Linux
Bạn có thể cài đặt và sử dụng PowerCLI cả trong Windows và Linux. Đầu tiên, cài đặt PowerShell Core trên máy chủ Linux của bạn. Sau đó chạy các lệnh sau trong bảng điều khiển để cài đặt VMware PowerCLI:
pwsh
Install-Module -Name VMware.PowerCLI
Nhập mô-đun vào phiên của bạn:
Import-Module VMware.PowerCLI
Lệnh PowerCLI cơ bản để quản lý VMware vSphere và VM
Bạn có thể nhận danh sách các lệnh ghép ngắn trong mô-đun PowerCLI như sau (hơn 2200 lệnh có sẵn):
Get-Command –Module *vmware*
Để tắt thông báo Chương trình Cải thiện Trải nghiệm Khách hàng (CEIP) của VMware:
Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCeip $false
Để kết nối với Máy chủ vCenter hoặc máy chủ ESXi:
Connect-VIServer <vCenter_or_ESXi_FQDN>
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.
Để bỏ qua chứng chỉ tự ký:
Set-PowerCLIConfiguration -Scope AllUsers -InvalidCertificateAction Warn
Để hiển thị danh sách các máy ảo đã đăng ký trên máy chủ ESXi (hoặc vCenter) của bạn:
Get–VM
Để chỉ hiển thị các máy ảo đã tắt nguồn:
Get-VM | Where {$_.Powerstate -ne “PoweredOn”} | Select Name, VMHost, NumCPU, MemoryMB, Version|Format-Table
Để khởi động máy ảo:
Start-VM -VM MUNTestVM1
Để khởi động lại máy ảo một cách chính xác (sử dụng tác nhân công cụ VMware):
Restart-VMGuest -VM MunTestVM1 -Confirm:$False
Để tắt máy ảo:
Shutdown-VMGuest -VM MunTestVM1 -Confirm:$False
Để hiển thị danh sách các ảnh chụp nhanh cho một máy ảo:
Get-VM -VM MunTestVM1 | Get-Snapshot| Format-List
Để di chuyển một máy ảo đang chạy sang máy chủ khác bằng VMotion, lệnh Move-VM được sử dụng. Ví dụ:bạn muốn di chuyển tất cả các máy ảo từ mun-esxi1 sang mun-esxi2:
Get-VMHost mun-esxi1|Get-Vm| Move-VM –Destination (Get-VMHost mun-esxi2)
Để tạo một máy ảo mới, hãy sử dụng New-VM lệnh ghép ngắn:
New-VM –Name MunTestVM1 -VMHost mun-esxi1 –ResourcePool Production –DiskGB 20 –DiskStorageFormat Thin –Datastore MUN_MSA2000_Prod1
Sử dụng Set-VM
lệnh ghép ngắn để thay đổi cài đặt máy ảo.
Sử dụng lệnh ghép ngắn PowerCLI, bạn có thể tương tác với hệ điều hành khách trên máy ảo của mình. Để làm điều đó, VMware Tools phải được cài đặt trong máy ảo. Bạn có thể cập nhật VMware Tools như hình dưới đây:
Get-VMGuest MunTestVM1 | Update-Tools
Sử dụng Invoke-VMS, bạn có thể chạy tập lệnh hoặc chương trình trong hệ điều hành Windows khách:
$script = '"%programfiles%\Common Files\Microsoft Shared\MSInfo\msinfo32.exe" /report "%tmp%\inforeport"'
Invoke-VMScript -ScriptText $script -VM MunTestVM1 -HostCredential $hostCred -GuestCredential $VMCred -ScriptType Bat
Để sao chép tệp vào tất cả các máy ảo, hãy chạy lệnh sau:
Get-VM | Copy-VMGuestFile -Source C:\PS\get-size.ps1 -Destination C:\PS\ - LocalToGuest -GuestUser administrator -GuestPassword P@ssdr0w2
Mô-đun chứa các lệnh ghép ngắn để quản lý các cụm, trung tâm dữ liệu, kho dữ liệu và máy chủ ESXi:
Get-VMHost
Get-Datacenter
Get-Cluster
Get-Datastore
Get-VirtualPortGroup
Để hiển thị danh sách các máy chủ ESXi trong một cụm:
Get-Cluster munprod1 | Get-VMHost | sort name
Đặt một máy chủ ESXi cụ thể vào chế độ bảo trì:
Set-VMhost -VMHost mun-esxi1 -State Maintenance
Để kết nối iSCSI LUN với máy chủ ESXi và tạo kho dữ liệu VMFS trên đó:
Get-ScsiLun -VmHost mun-esxi1 | ft
New-Datastore -Name 'mun_iscsi_datastore' -VMHost mun-esxi1 -Path naa.6000xxxxxxxxxxxxxxxx -Vmfs
Tập lệnh mẫu PowerCLI
Có một số ví dụ về việc sử dụng PowerCLI để lấy thông tin về các hạng mục cơ sở hạ tầng VMware và để tự động hóa một số hành động trên trang web. Bạn có thể sử dụng các ví dụ từ các bài viết sau để viết tập lệnh PowerCLI của riêng mình:
- Kiểm tra dung lượng đĩa trống trên Kho dữ liệu VMFS
- Ánh xạ Đĩa ảo VMware (Tệp VMDK) và Ổ đĩa Windows
- Cách tìm máy ảo VMware theo địa chỉ IP hoặc địa chỉ MAC?
- Định cấu hình SNMP trên Máy chủ VMware ESXi
- Làm cách nào để buộc khởi động lại một máy ảo VMware bị kẹt?
- Cách tự động cập nhật Windows trong VMware Templates?
- Đưa Trình điều khiển vào Hình ảnh Cài đặt ESXi
- Cảnh báo tình trạng cần hợp nhất của VMware VM
- Nâng cấp Phiên bản Phần cứng VM
vSphere PowerCLI là một công cụ mạnh mẽ để quản lý và tự động hóa cơ sở hạ tầng VMware của bạn. PowerCLI bao gồm hơn 2000 cmdlet để quản lý đám mây và cơ sở hạ tầng VMware tại chỗ (vSphere, vSAN, vRealize Operations Manager, vCloud Director, Site Recovery Manager, Horizon, NSX-T, VMware Cloud Services, VMware Cloud trên AWS, v.v.).