当前位置: 首页 > article >正文

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

9c3b06523f2409a2e8aa72abb194510a.gif

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

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

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

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

13f7c843b870b5fcea51fc1d789568cf.png

1、服务器开机

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

d8dcca9510c618c69609abf8e37b2bf9.png

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

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

https://techhub.hpe.com/eginfolib/servers/docs/HPRestfultool/iLo4/data_model_reference.html

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

2aadbd982b185a7792a76d23fdfe22ff.png

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

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}")

直接运行,开机成功!

579f25761b5d5f61975ce279f883174f.png

2、虚拟机开机

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

6e19406ee927fcc68d25b491b5ef7bab.png

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

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

2dc0b9acf46260adcb6099d1b5faebc1.png

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

e20bc4014b25bd68acd74bc2126d18ad.png

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

cff69eaaa85df290bfad43e5e61155fb.png

选中“Troubleshooting Options”,按回车进入。

625162525f02d9cdb12f6e593f11edd7.png

选中“ESXi Shell”“SSH”,通过按回车将状态切换为Enable状态。

d16b729d7fd52e735bed77a20961f280.png

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

5a15001c7384b11158ec773d9e948e27.png

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

vim-cmd vmsvc/power.on 3

7f4c9b483b7f1b5009b1b898e7e08624.png

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

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

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

进入“管理→系统→自动启动”配置页面。

2952d18264dc13ce1c1e2d8d86d9bdd2.png

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

3b88aaeca1cd6133fa77eb0a3efdc2d1.png

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

90ae9c65f4405294a2b82cdfcc77b409.png

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

c8eaad90e07144644fbe98a00fc934e2.png

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

35df6441dac4bc10be2146157e909440.png

启动成功,没有问题。

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

f4ee4f561a0da805e4220d86f12fea8d.gif

长按二维码
关注我们吧

5fb4520009b8997e2585ffb747e8e84a.jpeg

86ed97e9c89c4ef8db381aea10ab06e2.png

使用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?看这里!


http://www.kler.cn/a/233808.html

相关文章:

  • 45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua
  • 微服务day07
  • Node.js笔记
  • 边缘计算在智能交通系统中的应用
  • win32 / WTL 开发多线程应用,子线程传递大对象给UI线程(主窗口)的方法
  • 【C++】C++11特性(上)
  • 数据结构——5.3 二叉树的遍历和线索二叉树
  • 游戏竞赛中的时间压力与情绪管理:一场关于挑战、紧迫感与心态的深度探讨
  • 255.【华为OD机试真题】最小矩阵宽度(滑动窗口算法-JavaPythonC++JS实现)
  • 【微机原理与单片机接口技术】MCS-51单片机的引脚功能介绍
  • LabVIEW工业监控系统
  • 【Linux】构建模块
  • 2、ChatGPT 在数据科学中的应用
  • Istio1.6官方文档中文版
  • C++2024寒假J312实战班2.5
  • 正点原子--STM32通用定时器学习笔记(2)
  • 速盾:海外服务器用了cdn还是卡怎么办
  • 【CSS】什么是BFC?BFC有什么作用?
  • Android 11 webview webrtc无法使用问题
  • cool 框架 node 后端封装三方Api post请求函数
  • NLP_Bag-Of-Words(词袋模型)
  • 如何进行游戏服务器的负载均衡和扩展性设计?
  • VUE学习——事件参数
  • 每天一个数据分析题(一百五十六)
  • moduleID的使用
  • 【学习笔记】【内核】offsetof 的用法