1.原因
由于某个win2003虚拟机需要重启,然后用vSphere连接vCenter,给这个虚拟机点击重置按钮
然后vSphere下现实任务正在执行。。。。。过了N min之后,执行依旧!!!
需求比较着急,所以想到用vmware ESXI的shell命令行操作
2.开启VMware的SSH
a.选中虚拟机
b.配置选项卡
c.里头分硬件和软件两部分,选择软件中的安全配置文件
d.然后有半部分会显示服务和防火墙还有其他的东西,其他东西就不说了,咱们用到的只有开启服务和通过防火墙
e.服务标题的右边有熟悉,单击属性
f.找到ESXi Shell,点击选项,点击启动,启动的上边还有些服务的启动选项,按需选择!
g.找到SSH,和shell一样启用
h.然后返回安全配置文件
i.单击防火墙右边的属性,然后在属性中勾选SSH服务器就可以用SSH连到ESXi宿主机了!
3.强制杀掉虚拟机
~ # esxcli vm process list //列出虚拟机
Con1_win3k%2fdba.206
World ID: 3587
Process ID: 0
VMX Cartel ID: 3584
UUID: 56 4d b3 ae be b2 18 aa-8b a4 1d 1e e1 18 72 68
Display Name: Con1_win3k%2fdba.206
Config File: /vmfs/volumes/510793f0-9702ec9a-f401-782bcb07267f/Con1_win3k%2fdba.206/bj_tw_vm_003_001_win_2003_dba_11.vmx
~ # esxcli vm process kill --type=force --world-id=3587 //强制杀掉虚拟机
~ #
4.附带小招
如果你的机房只有linux,而没发用vSphere的时候可以用DNAT解决,无需在线上的机房特意安装windows
或者当你的vSphere win故障时需要连接ESXi的时候,来不及安装windows可以用DNAT
iptables -t NAT -A PREROUTING -d 可以访问的外网ip -p tcp -m tcp --dport 可以访问的外网ip上的端口(最好443) -j DNAT --to-destination ESXi宿主机的ip:443
例子:
iptables -t filter -A FORWARD -j ACCEPT
iptables -t NAT -A PREROUTING -d 211.155.85.176 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.119.103:443
注意:前提是必须开启IP_FORWARD
开启IP_FORWARD
echo 1 > /proc/sys/net/ipv4/ip_forward
这个问题是可以用nginx反向代理实现,虽然没试过,向来是可以的,有时间的同鞋可以试试!!!
5.VMware命令参考来自这儿
一、使用ESXi 5.0 主机的esxcli 命令来关闭虚拟机
esxcli 命令能够在本地或远程来关闭运行在ESXi 5.0主机上的虚拟机。
1. 打开ESXi Shell、vSphere Management Assistant (vMA)或vSphere Command-Line Interface (vCLI) 客户端,只要esxcli工具能够运行即可。
2. 使用如下命令获取正在运行的虚拟机清单,该清单由World ID、UUID、Display Name和 .vmx 配置文件所在路径构成:
esxcli vm process list #显示在此ESXI服务器中所有运行的虚拟机列表
3. 用如下命令关闭一台虚拟机:
esxcli vm process kill --type=[soft,hard,force] --world-id=WorldNumber
注意:有三种关闭虚拟机的方法,Soft 程度最低,hard 为立即执行,如果依然不能关闭,则可以使用force 模式。
4. 执行步骤2来检查虚拟机是否已不再运行。
二、使用 ESXi 命令行工具 vim-cmd 来关闭虚拟机
1. 在 ESXi 控制台,进入技术支持模式,用root用户登录。
2. 使用如下命令获取虚拟机清单,该清单由VMID、Display Name和 .vmx 配置文件所在路径构成:
vim-cmd vmsvc/getallvms #获取ESXI服务器中所有的虚拟机清单
3. 获取虚拟机的当前状态:
vim-cmd vmsvc/power.getstate VMID #获取虚拟机电源状态
4. 使用第2步获取的VMID 来关闭虚拟机:
vim-cmd vmsvc/power.shutdown VMID #相当于关闭客户机操作系统
Note: 如果虚拟机还是不能关闭,请尝试以下命令:
vim-cmd vmsvc/power.off VMID #相当于关闭虚拟机电源
建议首先使用vim-cmd指令关闭虚拟机,它可以通过关闭客户机操作系统的方式进行虚拟机正常关机。
#########################
迷途小运维原创,转载请注明出处
作者:JOHN