VMware ESX教程之PowerShell脚本:实例分析

VMware ESX教程之PowerShell脚本:实例分析
脚本是虚拟化管理员工具箱中最有利的工具。VMware现在通过VMware Infrastructure Toolkit为PowerShell脚本提供增加支持。在本文中,TechTarget中国的特约专家Rick Vanover将介绍如何使用基本的PowerShell脚本启动虚拟机、更新VMware Tools等任务。你将了解PowerShell脚本对VMware的好处,以及脚本化环境里其他任务的资源。
  VMware PowerShell资源
  在你研究之前,一些人已经做了一些工作,你只需要知道如何找到这些资源。因此将VMware PowerShell博客加入你的收藏夹作为常用参考文档是个好主意。在这里,你可以找到一些脚本实例,以及如何在VMware产品不断变化的情况下完成新任务的信息。在这里,你也可以下载VMware Infrastructure Toolkit(VI Toolkit)。这需要你目前安装了Windows PowerShell。
  安装VI Toolkit后,第一个任务是通读VI Toolkit管理员指导手册,这是包含在下载里的PDF文件。你可以跳过一些简单脚本实例,直接看界面是如何工作的。然后就能创建自己的脚本。
  一、启动虚拟机
  能启动虚拟机的脚本不是那么令人兴奋,但这是一个好的开始。VI Toolkit包含了关于基本虚拟机操作的丰富命令。启动虚拟机使用Start-VM命令,这个脚本对于基本的启动任务来说非常简单。如:
  Start-VM -VM VM-TESTSERVER1
  输入上面语句后任务将立即执行。当执行任务时,这个过程同时显示在VI Toolkit和VMware Infrastructure Client的滚动日志里。下图显示了基于文本的启动操作过程。
点击图片就能放大
  基本的命令有大量潜在的功能,这是由于它有我叫做“通配符”的功能。例如,你能马上启动整类系统。下面的命令含有字符串“testserver”,可以启动每台虚拟机。
  Start-VM -VM *TESTSERVER*
  注意,不要在你的存储系统上创建“boot storm”,因为许多系统都能使用这个命令执行。
  二、更新VMware Tools
  保持你所有子虚拟机上的VMware Tools是最新的,这个任务很具有挑战。VI Toolkit允许管理员传输自动更新命令到子机。对于Windows子机,由于需要重启完成安装,这会导致重启,因此在环境中要慎用这个命令。
  输入下面的命令将在所有服务器上更新VMware Tools:
  Update-Tools -VM *TESTSERVER*
  这个命令不传输任何安全属性或附加配置到子虚拟机。对于禁止了自动运行的虚拟机来说,虚拟的CD-ROM不能启动和运行VMware Tools的更新。同样,虚拟的CD-ROM设备被要求成为虚拟机目录的一部分,允许这种类型升级的操作。
  三、找到位于本地磁盘的虚拟机
  对于大多数VMware VI3实施来说,虚拟机将保持共享存储,以利用诸如High Availability和VMotion这样的功能。不可避免的,一些虚拟机最终将位于本地存储上。下面的脚本将列出所有位于本地存储的虚拟机。
  Get-VM –Datastore Servername*
  上面的脚本假定本地VMFS卷(如果存在)使用默认的命名系统。通过有组织的LUN术语,查询将很容易作为通配符运行。进一步讲,你能简单调节下脚本就能输出结果到文本文件,如:
  Get-VM –Datastore Servername* > C:localstorageVMs.txt
  四、为主机配置NTP时间服务器
  主机的一致配置是成功部署VI3的关键。一个能造成所有类型破坏的领域是ESX主机的本地时间配置。由时间配置引起的问题包括VMotion崩溃、VMware High Availability崩溃和连接到vCenter服务器状态的服务器并发症。进一步说,让所有系统指向组织里的授权时间源是个好主意。一台本地的网络时间协议(NTP)客户端在主机上,这是在ESX 3.5里更新的。如果你还没有使用的话应该立即使用。下面的脚本通过DNS域名配置主机使用NTP服务器。
  Add-VMHostNtpServer -NTPServer ntp.server.com -VMhost server.dns.name
  像VI Toolkit的其他区域一样,你也能使用通配符。在主机名称里,你应该输入下面那样的通配符:
  Add-VMHostNtpServer -NTPServer ntp.server.com -VMhost *server*.dns.name
  使用这个命令要小心,你能传递一个可能已经制定的配置,或者作为主机集群的更新,这可能包括热虚拟机工作负载。

沧海游侠  发表于: 2009-12-27

我要回答

电子邮件地址不会被公开。 必填项已用*标注

敬请读者进行回答,本站保留删除与本问题无关和不雅内容的权力。

相关推荐