配置VMware实现从服务器到虚拟机的一键启动脚本

正文共:1666 字 15 图,预估阅读时间:2 分钟

首先祝大家新年快乐!略备薄礼,18000个红包封面来讨个开年好彩头!

虽然之前将服务器放到了公网**(** 成本增加了100块,内网服务器上公网解决方案2.0重磅来袭! ,但是我们也介绍过L2TP是基于UDP协议的,难免存在丢包的情况**(** L2TP访问失败?快看看是不是NAT网关的ALG搞的鬼。所以报文交互应该是越少越好,最好从主机开机到虚拟机开机一气呵成。

今天,我就结合近期调整配置的一系列操作,给大家分享一下如何实现虚拟机一键开机。

1、服务器开机

操作最简单的方式,就是直接登录iLO执行开机操作。

但是我最近经历了,应该是更换光猫的问题,网速从之前的300 Mbps掉到了现在的100 Mbps出点头,网络质量比之前也差了很多。结果就是,通过L2TP建立的隧道,丢包率一度能超过8%,导致这个页面加载非常慢,甚至会出现无法加载的情况,通过F12查看就是资源下载不全。

为了优化这个问题,我去搜了一下,发现HPE服务器的iLO 4支持RESTful API,官方链接如下:

ruby 复制代码
https://techhub.hpe.com/eginfolib/servers/docs/HPRestfultool/iLo4/data_model_reference.html

在页面中找到和电源相关的操作为Reset,属于ComputerSystem,说明可行。

直接问一下通义千问,给出的Python脚本如下:

makefile 复制代码
import requests
import json
ilo_host = 'ilo-ip-address'
ilo_username = 'ilo-username'
ilo_password = 'ilo-password'
headers = {
  'Content-Type': 'application/json',
}
payload = json.dumps({'ResetType': 'On'})
response = requests.post(
  f"https://{ilo_host}/redfish/v1/Systems/1/Actions/ComputerSystem.Reset",
  headers=headers,
  auth=(ilo_username, ilo_password),
  data=payload,
  verify=False
)
if response.status_code == 200 or response.status_code == 202:
  print("Server power on command sent successfully.")
  else:
    print(f"Failed to power on server. Response code: {response.status_code}")

直接运行,开机成功!

2、虚拟机开机

比较传统的开机方式是登录ESXi管理页面,选中虚拟机然后点击**"打开电源"**,等待开机就可以了。

但是,当网络质量比较差的时候,也会出现页面加载失败的情况,如何解决呢?

第一种方式是通过ESXi的命令行操作,可以在**"管理"** 中的**"服务"**配置页面,手动启动TSM和TSM-SSH服务,然后使用管理员账号登录命令行就可以了。

但是如果仅仅是这么操作,那服务在主机重启之后就会自动关闭,如果想让服务一直启用,那么我们在服务上右击,将**"策略"** 设置为**"随主机启动和停止"**即可,这样就无需再手工开启了。

当然,如果我们登录不了WEB页面,也可以在后台页面启用命令行。在控制台页面按F2,输入账号密码进入配置调整页面。

选中**"Troubleshooting Options"**,按回车进入。

选中**"ESXi Shell"** 和**"SSH"**,通过按回车将状态切换为Enable状态。

然后我们就可以通过SSH登录到ESXi命令行了。

然后使用命令vim-cmd vmsvc/getallvms列出所有虚拟机,用来获取虚拟机ID (Vmid);再根据虚拟机ID来执行开机操作。

apache 复制代码
vim-cmd vmsvc/power.on 3

这样,就完成虚拟机的开机了。

相比于页面方式,命令行交互的报文数量极少,传输流量极小,一般都可以操作成功。

当然,我们还可以设置虚拟机自动启动,这样,只要启动服务器就可以了。

进入**"管理→系统→自动启动"**配置页面。

可以看到,当前自动启动未启用,点击**"编辑设置"** 。最主要的是将**"已启用"** 配置为**"是"**;启动延迟指ESXi主机启动后,延后多长时间才开始启动该虚拟机;停止延迟指收到关闭虚拟机请求后,虚拟机实际停止前等待的时长;启动延迟和停止延迟可以按需进行调整,如果感觉2分钟时间长,可以调整为1分钟;停止操作指虚拟机执行何种停止操作(关闭电源、挂起、关机);等待检测信号指ESXi可以根据虚拟机工具的心跳信号来判断当前虚拟机是否启动成功,启动成功后再继续启动序列中的下一个虚拟机,而不是仅仅依据启动延迟计时结束就开始启动下一个虚拟机。

当启用自动启动之后,就可以选中打算启动的虚拟机,然后点击**"启用"**,来启用单台虚拟机的自动启动了。

如果有多台虚拟机需要自动启动,还可以配置虚拟机的启动顺序、启用延迟、停止延迟等信息。

最后,然我们关机,试一下虚拟机是否可以随服务器启动成功。

启动成功,没有问题。

至此,我们也就实现了从服务器到虚拟机通过脚本的一键启动了!

长按二维码

关注我们吧


<>

使用Python脚本实现SSH登录设备
<> <>

ESXi的超线程状态为"已禁用",是谁动了我的服务器?
<> <>

通过Nginx做一个openVPN配置文件下载页面
<> <>

L2TP访问失败?快看看是不是NAT网关的ALG搞的鬼
<> <>

L2TP over IPsec复杂吗?有点!所以建议你看看这篇文章
<> <>

IPv6从入门到精通
<> <>

IPv6静态路由配置
<> <>

IS-ISv6配置
<> <>

SRv6典型配置
<> <>

付出总有回报,全国SRv6组网实验成功了!
<> <>

【请勿模仿】一个小实验命令竟然超过1600行
<> <>

如何操作VMware ESXi虚拟机的克隆?
<> <>

如何操作VMware ESXi虚拟机的迁移?
<> <>

VMWare ESXi中,不同的虚拟网卡性能竟然能相差三倍!
<> <>

添加E1000网卡进行测试,只有VMXNET3性能的四分之一
<> <>

VMWare ESXi 7.0的磁盘空间莫名少了120 GB?看这里!
<>

相关推荐
用户03284722207021 小时前
如何搭建本地yum源(上)
运维
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz4 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈4 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
施努卡机器视觉4 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造