powercli腳本
Ⅰ 如何用VMware PowerCLI腳本來定製SRM恢復計劃
雖然您還可以採用傳統的(.bat)文件方式在SRM中執行命令行步驟,但是微軟提供的.bat文件並不是專門創建的,為操作和調整vSphere平台而提供的擴展程序介面(API-advanced
programming
interface)。如果您的目的是為了製作更為精細的腳本,那麼我們確實需要一種更為全面的腳本引擎工具。幸運地是,VMware即將整合微軟的PowerShell環境,並推出專用於管理VMware虛擬環境的cmdlets命令介面。
首先下載並在恢復站點的SRM伺服器上安裝微軟的PowerShell,然後下載和安裝VMware
PowerCLI工具。
一旦我們完成了在恢復站點SRM伺服器上PowerCLI的安裝,就可以開始創建.PS腳本。並且在此之前,我們要通過PowerCLI配置相應的安全設置,並且確保可以通過PowerCLI登陸恢復站點的vCenter,這么做是非常有意義的。
在SRM論壇上,最常見的問題之一就是如何減少恢復進程中虛擬機對內存的佔用量。這是一個實際上很常見的問題,因為通常情況下恢復站點的ESX伺服器要相對差一些。例如,或許恢復站點的伺服器物理內存數量要少於被保護的站點。通過使用PowerCLI,我們可以通過.PS腳本,在啟動虛擬機之前自動調用減少虛擬機內存分配的進程。
通過使用PowerCLI,可以有很多種實現方法。您可以為每台虛擬機都創建一個.PS腳本來減少其內存佔用。如下是一個實例,通過這個PS腳本可以完成對我命名為ctx01的虛擬機的處理。在腳本中,我使用了set-vm
cmdlet把恢復站點虛擬機的內存分配減少為1024MB。另外,–confirm:$false命令
用來在需要人工確認更改時,完成操作而無須等待。
例1
connect-viserver vc4nj.corp.com
--user corp\\administrator --password vmware
Set-VM ctx01 -MemoryMB
\"1024\" -Confirm:$FALSE
Disconnect-VIServer –Server vc4nj.corp.com
-Confirm:$FALSE
當然,為每台虛擬機都創建一個.PS腳本對管理員來說是非常沉重的負擔,所以您可能更喜歡通過虛擬機名稱來搜索和定位,並對多個虛擬機同時完成修改的操作方式。例如,在如下的.PS腳本中,get-vm
cmdlet 是用來查找所有以「ctx」文本開頭的虛擬機,並把找到的虛擬機傳遞給set-vm命令。這個操作將對那些命名為ctx01,
ctx02,……等等的虛擬機內存分配做調整。
例2
connect-viserver vc4nj.corp.com
--user corp\\administrator --password vmware
get-vm ctx* | Set-VM -MemoryMB
\"1024\" -Confirm:$FALSE
Disconnect-VIServer –Server vc4nj.corp.com
-Confirm:$FALSE
更加精簡的腳本方式是,並不指定特定的內存數量,而是通過檢查虛擬機內存數量並設置在特定的條件下減少內存分配數量。
例如,假設我需要把分配給恢復的虛擬機的內存數量全部減少為原來的一半。如下的腳本就可以自動查詢現在分配給虛擬機的內存數量,然後減少為50%。通過查找虛擬機名字中的ctx*字元串來定位並查詢現在為虛擬機分配的內存數量,然後使用set-vm
cmdlet實現正確的設置。
例3
connect-viserver vc4nj.corp.com
--user corp\\administrator --password vmware
Foreach ($VM in Get-VM
ctx*){
$NewMemAmount = $VM.MemoryMB / 2
Set-VM $VM-MemoryMB
$NewMemAmount -Confirm:$FALSE
}
Disconnect-VIServer –Server vc4nj.corp.com
-Confirm:$FALSE
在我的環境中,最終採用了最後一種方法來控制分配給CTX虛擬機的內存。這里我想感謝來自英國的Al
Renouf,是他幫助我編寫了最後一個例子中的腳本。或許您不知道Al是誰,他對PowerShell非常的熟悉,而且他的Virtu-Al
blo博客也非常值得一讀。
在下一步中要完成的是,讓這些PS文件可以被SRM調用。相比SRM直接調用這些.PS腳本的方式,我更喜歡創建一個.cmd/.bat文件,然後通過該文件在合適的時機調用。這種方式可以減少在編寫命令腳本程序時的代碼行。通過在.cmd/.bat文件中使用變數,我可以多次使用它來調用保存在SRM伺服器上的.PS文件。
步驟1:創建一個可重定向的.bat文件
我第一次關注可重定向的.bat方式是在閱讀一個博客(Carter
Shaklin\'s PowerCLI blog)中,那裡討論了如何在vCenter
Alarms中使用.PS腳本。
在Virtu-AL主頁的幫助下,我創建了一個可以引用我的.PS1腳本的.bat文件。該腳本會載入微軟的Powershell環境,同時啟動PowerShell控制台文件(.psc1,該文件使得VMware
PowerCLI可以正常工作)。通過末尾的變數字元串「%1」,可以在同一個重定向的.bat文件中實現對所有.PS1文件的調用。
@echo
off
C:\\WINDOWS\\system32\\windowspowershell\\v1.0\\powershell.exe -psc
\"C:\\Program Files\\VMware\\Infrastructure\\vSphere PowerCLI\\vim.psc1\"
\"&
\'%1\'\"
步驟二:把.bat重定向文件和powercli.ps腳本拷貝到恢復站點的SRM伺服器上
下一步是要完成把redirect.bat
和
.PS文件拷貝到恢復站點SRM伺服器上。相對來說,您把這些文件拷貝到什麼地方並不重要,只要您在腳本中正確地鍵入了文件路徑,那麼當您在恢復計劃中鍵入命令並執行後,它們就會毫無差錯地運行起來。
Ⅱ 26個適用於VMware管理員的強大工具,收藏了!
VMware的產品為用戶提供雲計算和平台虛擬化服務,並支持使用多種擴展其功能的工具。作為管理員你一定有很多工具,所以要跟蹤它們是一項很大的挑戰。本文給VMware管理員推薦一些工具。
As Built Report是一個開源配置文檔框架,使用Windows PowerShell和PScribo生成和構建XML,Text,HTML和Word格式的文檔。
可以使用As Built Report輕松運行,並針對IT環境生成報告,並能夠輕松地為任何IT供應商和技術創建新報告,並支持RESTful API和/或Windows PowerShell。
Cross vCenter Workload Migration Utility可以使用GUI輕松地通過Cross-vCenter vMotion功能在vCenter伺服器之間遷移虛擬機。它自動填充以便於管理,支持並行批量遷移多個VM,並實現REST API以自動執行遷移任務。
ESXTOP是一個非常棒的命令行工具,它與vSphere一起幫助管理員實時嗅探並修復性能問題。它顯示有關vSphere環境資源管理的信息,包括有關磁碟,CPU,網路和內存使用情況的所有實時信息。
Git毋庸贅言了,開源代碼版本的控制系統,是有Linux之父Linus Torvalds在2005年創建的。它有成千上萬的貢獻者,大社區的支持,並與幾個IDE和操作系統兼容,包括VMware。
超融合基礎設施Benchmark將HCI Bench作為開源VDbench基準測試工具的自動化包裝器,可簡化跨HCI集群的自動化測試。
HCI Bench通過完全自動化啟動測試虛擬機的端到端流程,調節工作負載運行,聚合測試結果以及收集有價值的數據以進行故障排除,以可控且一致的方式加速客戶POC性能測試。
Hyper是一個跨平台,可定製的開源終端應用程序,根據現代Web標准構建,在同類工具中很有競爭優勢。
IOInsight是VMware附帶的虛擬工具,使用戶能夠了解其虛擬機的存儲I/O行為。它具有基於Web的用戶界面,用戶可以通過該界面選擇要監控和顯示結果的VMDK,以便在性能調整和存儲容量方面做出更好的選擇。
Linux VSM是VMware的Linux軟體管理器的增強入口。有了它,用戶可以登錄My VMware,訪問下載信息,並查看VSM允許的下載子集。Linux VSM的設計比用於macOS和Linux的VSM版本稍微智能一些。例如,它不會中斷操作,而是忽略丟失的文件。
VMware的vRealize Log Insight是一個虛擬工具,管理員可以使用該工具查看,管理和分析Syslog數據,從而獲得對vSphere進行故障排除並執行合規性和安全性檢查的功能。
mRemoteNG是一個開源的,多協議,標簽式遠程連接管理器,作為mRemote的分支創建,具有新功能和錯誤修復。它支持虛擬網路計算(VNC),SSH,rlogin,HTTP,HTTPS,Citrix獨立計算架構(ICA)和遠程桌面/終端伺服器(RDP)。
pgAdmin是管理PostgreSQL及其相關資料庫的最流行,功能最豐富的工具。它的功能包括Windows,macOS和Linux的可用性,廣泛的在線文檔,用於語法突出顯示的強大查詢工具,多種部署模型,以及對大多數PostgreSQL伺服器端編碼的支持,以及其他功能。
pocli是一個基於Python的工具,它為ownCloud提供了一個輕量級命令行客戶端,用於基本文件操作,如上傳,下載和目錄管理。pocli的開發受到缺乏一種能夠在沒有GUI的情況下快速上傳和/或下載文件的工具的靈感。
Postman是一個非常好的HTTP客戶端,用於測試Web服務,它的創建是為了簡化API的開發,測試和記錄過程,使用戶能夠快速完成簡單和復雜的HTTP請求。Postman對於個人和小型團隊是免費的,並為具有多達50個用戶和企業解決方案的團隊提供具有高級功能的每月訂閱。
PowerCLI是一個功能強大的應用程序,用於自動化和管理VMware vSphere配置,幾乎可以與任何VMware產品配合使用。此命令行工具構建於Windows PowerShell之上,可提供600多個cmdlet,不僅可以管理vSphere和VMware,還可以管理vCloud,vSAN,VMware Site Recovery Manager,NSX-T,VMware HCX等。
RVTools是一個.NET應用程序,它使用VI SDK顯示有關虛擬環境的重要數據,它與多種技術交互,包括VirtualCenter Appliance,ESX Server 4i,ESX Server 4.x,ESX Server 3i,VirtualCenter 2.5等等。
RVTools擁有超過一百萬的下載量,非常出色地顯示有關虛擬環境的CD驅動器,快照,ESX主機,VM內核,數據存儲,運行狀況檢查,許可證信息,資源池等的信息,你可以使用它來更新你的VMTools到他們的最新版本。
vCenter Converter是一種用於將本地和遠程物理機轉換為虛擬機而不會出現任何停機的工具。它具有一個集中控制台,可以在本地和遠程管理多個同步轉換。
vCheck是一個HTML框架腳本,旨在與PowerShell一起安排自動化任務,通過電子郵件以可讀格式向你發送信息。vCheck是一個智能腳本,因為它只向你發送重要信息,省略了不必要的細節。例如,如果沒有足夠的空間,你將不會收到有關數據存儲磁碟空間的任何信息。
vDocumentation為用戶提供PowerShell社區創建的PowerCLI腳本集,以CSV或Excel格式提供vSphere環境的基礎結構文檔。它由Ariel和Edgar Sanchez維護。
通過VMware API Explorer,你可以跨任何主要VMware平台瀏覽,搜索和檢查API,不包括vRealize,NSX,vCloud Suite和vSphere。可以使用資源管理器輕松訪問特定於所選API的SDK和代碼示例以及其他資源。
在VMware vCenter的CapacityIQ工具,使管理員可以分析,預測和規劃自己的虛擬桌面環境或數據中心的容量需求。
VMware Health Analyzer(vHA)用於根據標准化實踐評估VMware環境。它由VMware合作夥伴/解決方案提供商使用,目前僅供有權訪問Partner Central和VMware員工的客戶使用。
VMware OS Optimization Tool使管理員能夠優化Windows 7到10系統,以便與VMware Horizon View配合使用。其功能包括跨多個系統的可自定義模板等。可以使用VMware OS Optimization Tool來管理模板,優化 歷史 記錄和回滾,執行遠程和本地分析。
Project Onyx是一個實用程序,用於根據vSphere客戶端中的單擊生成代碼。它的目的是讓你加快腳本的開發速度。Project Onyx監控vSphere客戶端和vCenter Server之間的網路通信,並將其轉換為可執行的PowerShell代碼,該代碼可以修改為可重用的腳本或函數。
VMware Skyline是一種自動化支持技術,旨在通過幫助客戶在問題發生之前避免問題來提高團隊生產力和VMware環境的整體可靠性。
VMware vRealize Orchestrator是功能最強大的VMware管理工具之一,因為它允許用戶使用拖放式GUI創建自動執行多個日常任務的工作流。它還在VMware Solution Exchange中提供了大量插件庫,用於第三方解決方案並擴展其功能。
WinSSHterm是一個適用於Windows的生產就緒SSH客戶端,它將WinSCP,PuTTY / KiTTY和VcXsrv組合成一個選項卡式解決方案。其功能包括使用主密碼,模板變數,眼睛友好的終端顏色,鍵盤快捷鍵等。
Ⅲ PowerCLI對決PowerShell 誰才是最好的腳本
VMware正在試圖將PowerCLI支持擴展到其他技術,這也是微軟已經准備要在今後做的事情。這里有一個PowerCLI作為VMware的虛擬桌面解決方案,稱為View,但是這個實施方案與vSphere PowerCLI的實施大不相同。感覺起來它更像一個DOS命令行系統而不是PowerShell,並且它允許流水線技術以及查詢對象的屬性和特性。截至目前,雖然像虛擬機站點恢復管理這樣的技術不具有PowerCLI,但是它很有可能出現在虛擬機的雷達屏幕上。
對於那些沒有生活在Windows世界的人來講,PowerShell和PowerCLI已經在系統管理世界引起了巨大沖擊波。但是基於Linux的腳本編寫者也許會覺得遭受了冷落。VMware提供了Perl語言,而微軟沒有,但這是指日可待的。
相似的老版CLI和遠程CLI似乎也正在消亡,就像VMware到vCLI和vCLI設備的“ESX”命令行埠一樣。現在,它們想要一個中間步驟,想讓VMware客戶對老版“服務控制台”環境的依賴。現在,似乎PowerShell和PowerCLI為為可預見的未來規定系統管理員的休息場所。
Ⅳ 如何糾正錯誤的ESXi共享存儲配置
在小型VMware環境當中,錯誤配置共享存儲的情況並不少見。花費一些時間來糾正這些錯誤可以在ESXi主機超過負載或者宕機時避免很多問題。
一個成功的vSphere部署需要包含三個基本部分:多個相同的ESXi伺服器、共享存儲和vCenter。任何具有多個ESXi伺服器的數據中心都應該使用共享存儲,並且對於所有伺服器集群都保證一直可用。
對於一些vSphere核心技術來說,比如v
Motion、分布式資源調度(DRS)和高可用性(HA),共享存儲是一個前提條件。vMotion可以在不產生宕機時間的情況下,將一個運行中的虛擬機從一台ESXi主機遷移到另一台上。DRS利用vMotion技術將虛擬機移動到其他的ESXi主機上,以避免產生CPU和內存不足的情況。如果一台ESXi伺服器發生故障,vSphere HA會在集群中的其他ESXi主機上重啟正在運行的虛擬機。DRS和HA只能用於存放在共享存儲上的虛擬機;不論是HA還是DRS遷移,虛擬機在存儲上的位置都不會發生改變。
為了最大限度地發揮HA和DRS的作用,虛擬機使用的所有存儲都必須對集群中的每一台ESXi伺服器保證可用。連續的共享存儲使用的配置取決於存儲網路類型:光纖通道(FC)、iSCSI還是網路文件系統(NFS)。對於FC和iSCSI存儲,需要確保存儲陣列對於每個ESXi主機都使用相同的邏輯單元號(LUN)。一些陣列通過使用分組可以輕松實現這個需求,但是其他陣列就需要你為每個主機都單獨進行配置。
對於FC,你需要將FC交換機配置在一致的分區當中,以使得所有的主機都能夠找到陣列。如果使用的是iSCSI,那麼ESXi主機需要使用同樣的發現設定、同樣的動態發現IP地址列表。
如果使用的是NFS,那麼大部分的設定都可以在ESXi伺服器上完成。確保在每個ESXi主機上都使用相同的NFS伺服器主機名和共享路徑。如果一個ESXi主機使用NFS伺服器的IP地址,另外一個使用主機名,而第三台ESXi主機使用全限定名,那麼vCenter將認為它們使用的是不同的數據存儲。NFS伺服器主機名和共享路徑在所有的主機上都必須是相同的,這樣vCenter才能將它們識別為同一個數據存儲。可以使用vSphere Command Line或者PowerCLI腳本對ESXi主機的NFS和iSCSI進行自動配置,這樣可以更為輕易地確保使用同樣的命令來部署每個主機。
在vSphere Client中的Maps標簽頁下,可以輕松地查看集群的一致性存儲。在vSphere Client的主機和集群視圖中,選擇集群——而不是ESXi主機——點擊Maps標簽,之後關閉所有從主機到數據存儲的依賴關系聯線,點擊應用關系。現在,就可以看到主機和數據存儲的網狀連接圖了。
如果每一個數據存儲都連接到每一台主機上,那麼一切都不會有問題。那些只連接到一部分主機的數據存儲會引發問題。如果只有一部分主機能夠找到數據存儲,那麼只有這些主機可以使用數據存儲來運行虛擬機。沒有連接到這些數據存儲的主機可能進行了錯誤的配置。一些數據存儲只連接到一台ESXi主機;這通常是ESXi主機內部的本地磁碟,不能進行共享。注意不要將虛擬機放置在本地數據存儲上,除非虛擬機只是在ESXi主機上使用,比如vShield代理虛擬機。
開啟虛擬機到數據存儲的關系會使得網路關系圖更加復雜,但是可以顯示出哪些虛擬機位於共享存儲上,哪些在使用非共享數據存儲。如果你的一些虛擬機位於非共享存儲上,想一想是否能夠通過存儲vMotion將這些虛擬機遷移到一個另外的數據存儲當中;需要確保目的存儲上有足夠的空餘空間。從VM菜單中選擇Change Datastore,選擇目標數據存儲進行遷移,之後等待。
Ⅳ 如何用powercli腳本修改vmware網卡類型的方法
#添加vmware mole,需要安裝 vmware powercli;
Add-PSSnapin -Name *vmware*
#連接到虛擬機所在的vcenter伺服器或esxi伺服器;
Connect-VIServer -Server 172.26.1.100 -username root -Password www@4321
#單獨頌團修改虛坦櫻旁擬機test1的網卡1類型,從E1000更改為 vmxnet3;
get-vm -Name test1 | Get-NetworkAdapter -Name "讓橡Network adapter 1" | Set-NetworkAdapter -Type Vmxnet3
#批量修改虛擬機所以得網卡類型
Get-VM test1 | Get-NetworkAdapter | Where {$_.Type -eq "E1000"} | Set-NetworkAdapter -Type Vmxnet3