远程启动或关闭ESX Server上的虚拟机
作者:upall 发布:2011-04-26 13:48 分类:工作抢沙发
  VMware提供了命令行管理虚拟机的接口,即vmware-cmd,通过这个命令行接口可以完成对虚拟机的诸多操作,比如重启、关闭、开机、配置快照等等。配合这个工具可以实现远程执行Vmware-cmd,plink相当于Putty的命令行模式。这样通过制作脚本,实现在远程批量操作虚拟机了。
  文末有我使用的bat文件,配合plink和(不需要putty)即可实现ESX的开、关机,其上虚拟机的开、关机。
一、准备工作
1、下载PuTTY:nd.org.uk/~sgtatham/putty/download.html
  下载PuTTY和plink,将两个文件放入同一文件夹内。
2、双击Putty,“Host Name”处填入ESXSrver主机的名称或IP地址;“Saved Sessions”随便填入一个连接名称,点击“Save”,保存链接:
3、重新打开PUTTY,双击刚才保存的VmServer06的链接,试验能否正确链接到ESXServer主机:
二、试验关闭/开启虚拟机
1、远程主机上,打开CMD命令行,定位到存放putty和plink的文件夹,输入如下命令:
 
1
-load “VmServer06″ -ssh -batch -l user -pw yourpass -
  提示:“VmServer06”为前面保存的PUTTY的链接名称,“User”用来连接ESXServer的用户名,“Yourpass”SSH连接ESXServer的密码,“”存放Vmware-cmd执行命令的文件
2、关机脚本“”:
 
1
vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx stop
  提示:/vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx 表示虚拟机存放镜像的路径,将存放到与putty相同的路径。
3、运行步骤1中的命令,关闭Vmserver02的虚拟机:
  说明:显示 stop<> =1,成功关闭虚拟机VmServer02
4、同理试验开启虚拟机,制作开机脚本“”,命令如下:
 
1
vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmGhost01/VmGhost01.vmx start exit
  保存成。
5、CMD下输入命令:
 
1
-load “VmServer06″ -ssh -batch -l user -pw yourpass -
6、结果显示成功启动虚拟机:
三、制作开机/关机脚本。
1、按照试验的方法,将ESXServer上的虚拟机添加到和中。
  “”
    vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx start
    vmware-cmd /vmfs/volumes/VmServer06\:storage1//VmGhost01/VmGhost01.vmx start
    vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer04.vmx start
    exit
  “”:
    vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx stop
    vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmGhost01/VmGhost01.vmx stop
    vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer04.vmx stop
    exit
2、制作plink命令的脚本
  开机脚本start.bat
1
2
@echo off
-load “VmServer06″ -ssh -batch -l user -pw yourpass -
  关机脚本
1
2
3
4
@echo off
echo 确认要关闭虚拟机吗?确认按任意键继续;退出点击关闭
pause
-load “VmServer06″ -ssh -batch -l user -pw yourpass -
  现在在任意一台XP客户端双击运行脚本,就可以远程批量开启或关闭虚拟机了。
另一种方法:
先补充一下常用的命令:
1
2
vmware-cmd –l  ##查看长长的.vmx位置
vmware-cmd vmx-path start <poweron_mode>  ##在这,输入vmx-path时,常常会让人感到愤怒,或者是vm很多很多时,眼花撩乱,简直是@#$%&^%$#$%
看下如何用“vmware-vim-cmd”实现开机效果:
1
2
vmware-vim-cmd vmsvc/getallvms  ##获取所有VM的信息,包括我们需要使用的Vmid,值得一赞的是,这里的输出结果太美观了(Putty窗口太窄,换行显示就不漂亮了)
vmware-vim-cmd vmid  ##OK,启动虚拟机(注意替换“vmid”)!
  另外,使用这种方法去修改网络以及其他配置时,也是更加的有效以及方便的。不过值得注意的时,修改网络配置后,一般需要使用刷新命令 [refresh],否则修改后,你getinfo时,就会发现,怎么好像没配置成功,这确实有些让人困惑,但是refresh后,一切都好了!
vmware-vim-cmd:
1
2
3
4
[root@esx80 root]# vmware-vim-cmd
Commands available under /:
hostsvc/  proxysvc/  vimsvc/  help
internalsvc/  solo/  vmsvc/
介绍其中几项:
  hostsvc/ 包含的是一些关于host设置的命令,类似网络,硬件信息,存储,防火墙,各种服务等等……
  vmsvc/ 则包含的是对Virtual Machine的一些常规设置,类似查看状态,启动,关闭,快照管理,添加/扩展磁盘,等等……
  vimsvc/ 包含的是一些权限,license等等更多VI Client以及VC中一些常规的设置
这里附上一个我正在使用的bat脚本:
  用法:
1
2
3
4
5
6
7
8
esx on #远程打开ESX主机(需要一个工具来发送“Wake-up packet”)
esx off #远程关闭ESX主机
esx ste #查看ESX主机的状态
esx l #查看ESX上的虚拟主机列表(列表中有相应的vmid和虚似机的名称)(L的小写)
esx 80 on  #远程打开ESX上vmid为80的虚拟主机
esx 80 off  #远程关闭ESX上vmid为80的虚拟主机
esx 80 ste #查看ESX上vmid为80的虚拟主机的状态
esx ?  #查看帮助
  最后:1、记得让这个脚本得到plink和wol,你可修改环境变量,或者指定为“d:\”。
     2、如果提示是否保存密钥,输入“y”或者“n”都可以,但是输入“y”的话,再次执行将不会再出现这个提示,密钥保存在“HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys”。
Esx.bat的代码:
1
2
3
4
5
6
7
8
9
10
11
12ssh命令行
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
@rem ===================================================
@rem 说明:
@rem   用于启动或关闭ESX上的虚似主机
@rem   用法请使用命令“esx ?”查看。
@rem   【注意】需要配合和才能正常工作。
@rem ===================================================
@echo off
::=============配置================
set sshHost=192.168.0.250
set sshUser=root
set sshPwd=upall
::================================
if '%1'=='?' goto howto
if /i '%1'=='on' goto PowerOnEsx
if /i '%1'=='off' goto PowerOffEsx
if /i '%1'=='ste' goto statusEsx
if /i '%1'=='l' goto allVms
if '%1'=='' (set vmid=80) else set vmid=%1
if '%2'=='' (set ste=on) else set ste=%2
if /i '%ste%'=='ste' set ste=getstate
-ssh -l %sshUser% -pw %sshPwd% %sshHost% vmware-vim-cmd vmsvc/power.%ste% %vmid%
goto end
:PowerOnEsx
wol 0002a5ae72bb
rem wol后边的是ESX的网卡地址
goto end
:PowerOffEsx
-ssh -l %sshUser% -pw %sshPwd% %sshHost% shutdown -h now
goto end
:statusEsx
-ssh -l %sshUser% -pw %sshPwd% %sshHost% service mgmt-vmware status
goto end
:allVms
-ssh -l %sshUser% -pw %sshPwd% %sshHost% vmware-vim-cmd vmsvc/getallvms
goto end
:howto
echo 说明:通过plink控制ESX上虚拟机的on和off。
echo 没有vmid参数,on和off将作用于ESX本身,
echo l参数(“L”的小写)可以列出所有虚拟机。
echo 用法:esx [vmid = 80] [on^|off^|ste = on] [l]
echo 例子:esx 80 on
echo 命令: -ssh -l sshUser -pw sshPwd sshHostIP vmware-vim-cmd 80
:end
<完>
囧rz-----------------我是分割线,超囧的分割线--------------------- 囧rz
远程批量启动或关闭ESXServer上的虚拟机
时间:2009-08-03 09:14来源:abner.cublog 作者:Abner Kou 点击: 1183 次
VMware提供了命令行管理虚拟机的接口,即vmware-cmd,通过这个命令行接口可以完成对虚拟机的诸多操作,比如重启、关闭、开机、配置快照等等。配合这个工具可以实现远程执行Vmware-cmd,plink相当于Putty的命令行模式。这样通过制作脚本,实现在远程
VMware提供了命令行管理虚拟机的接口,即vmware-cmd,通过这个命令行接口可以完成对虚拟机的诸多操作,比如重启、关闭、开机、配置快照等等。配合这个工具可以实现远程执行Vmware-cmd,plink相当于Putty的命令行模式。这样通过制作脚本,实现在远程批量操作虚拟机了。 

一:准备工作 

1:下载PUTTY 

nd.org.uk/~sgtatham/putty/download.html 

下载PUTTY和plink,将连个文件放入同一文件夹内 

2:双击Putty,Host Name处填入ESXSrver主机的名称或IP地址;Saved Sessions随便填入一个连接名称,点击Save,保存链接 

 

3:重新打开PUTTY,双击刚才保存的VmServer06的链接,试验能否正确链接到ESXServer主机 

 

二:试验关闭、开启虚拟机 

1:远程主机上,打开CMD命令行,定位到存放putty和plink的文件夹,输入如下命令 

-load “VmServer06″ -ssh -batch -l user -pw yourpass - 

VmServer06 前面保存的PUTTY的链接名称 

User 用来连接ESXServer的用户名 

Yourpass SSH连接ESXServer的密码 

存放Vmware-cmd执行命令的文件 

2:关机脚本 

vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx stop exit 

/vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx 表示虚拟机存放镜像的路径 

将存放到与putty相同的路径 

3:运行步骤1中的命令,关闭Vmserver02的虚拟机 

 

显示 stop<> =1,成功关闭虚拟机VmServer02 

4:同理试验开启虚拟机,制作开机脚本,命令如下 

vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmGhost01/VmGhost01.vmx start exit 

保存成 

5:CMD下输入命令 

-load “VmServer06″ -ssh -batch -l user -pw yourpass - 

6:结果显示成功启动虚拟机 

 

三:制作开机、关机脚本 

1:按照试验的方法,将ESXServer上的虚拟机添加到和中 

 

vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx start 

vmware-cmd /vmfs/volumes/VmServer06\:storage1//VmGhost01/VmGhost01.vmx start 

vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer04.vmx start exit 

 

vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx stop 

vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmGhost01/VmGhost01.vmx stop 

vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer04.vmx stop exit 

2:制作plink命令的脚本 

开机脚本start.bat 

@echo off 

-load “VmServer06″ -ssh -batch -l user -pw yourpass - 

关机脚本 

@echo off 

echo 确认要关闭虚拟机吗?确认按任意键继续;退出点击关闭 

pause 

-load “VmServer06″ -ssh -batch -l user -pw yourpass - 

现在在任意一台XP客户端双击运行脚本,就可以远程批量开启或关闭虚拟机了
(责任编辑:admin)