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