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

news2024/11/24 7:46:15

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.coloradmin.cn/o/1445619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c语言游戏实战(6):走迷宫之推箱子

前言: 在上一篇文章当中我介绍了一个走迷宫的写法,但是那个迷宫没什么可玩性和趣味性,所以我打算在迷宫的基础上加上一个推箱子,使之有更好的操作空间,从而增强了游戏的可玩性和趣味性。 1. 打印菜单 void menu() {…

【DDD】学习笔记-UML 与彩色建模

如果某个领域已经形成了稳定的分析模式,在设计该领域的分析模型时,这些模式就可以提供有价值的参考。可惜,分析模式需要有人来总结和提炼,最好的分析模式提炼者需要兼具领域知识和软件建模能力。很早以前,Martin Fowle…

nodejs切换版本

sudo n 18.17.0 sudo n然后键盘上下选择

Vue核心基础6:Vue内置指令、自定义指令、生命周期

1 Vue中的内置指令 <script>const vm new Vue({el: #root,data: {n: 1,m: 100,name: Vue,str: <h3>你好</h3>}})</script> 1.1 v-text <div v-text"name"></div>1.2 v-html <div v-html"str"></div> …

SpringCloud-高级篇(二十)

下面我们研究MQ的延迟性问题 &#xff08;1&#xff09;初始死信交换机 死信交换机作用一方面可以向Public的异常交换机一样做异常消息的兜底方案&#xff0c;另一方面&#xff0c;可以处理一些超时消息&#xff0c;功能比较丰富一点 &#xff08;2&#xff09;TTL 上面学习…

Java基础:值传递和引用传递

Java在给方法传递参数时&#xff0c;有值传递和引用传递两种方式。 基本概念 值传递&#xff1a;传递对象的一个副本&#xff0c;即使副本被改变&#xff0c;也不会影响源对象&#xff0c;因为值传递的时候&#xff0c;实际上是将实参的值复制一份给形参。 引用传递&#xf…

猫头虎分享已解决Bug || ValueError: Data cardinality is ambiguous

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【Cocos入门】物理系统

物理引擎默认是关闭状态以节省资源开销。开启方法和之前的普通碰撞类似:cc.directorgetPhysicsManager().enabled true但有一个区别&#xff0c;物理引擎的开启必须放在onLoad函数内运行&#xff0c;否则不生效。 开启物理引擎后&#xff0c;游戏运行&#xff0c;会发现添加…

C++多态重难点

CSDN上已经有很多关于C多态方面的一些系统介绍了&#xff0c;但是我看了一下一些有关于多态问题的细节问题文章较少&#xff0c;因此我想要出一片文章重点讲一讲我认为比较重点且容易被遗忘的知识点&#xff0c;一些比较基本的知识这里就不过多赘述了&#xff0c;可以参考其他优…

controller-manager学习三部曲之二:源码学习

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 作为《controller-manager学习三部曲》系列的第二篇&#xff0c;前面通过shell脚本找到了程序的入口&#xff0c;接下来咱们来学习controller-mana…

第三百一十八回

文章目录 1. 概念介绍2. 使用方法2.1 本地缓冲2.2 服务器缓冲3. 示例代码4. 内容总结我们在上一章回中介绍了"如何让输入键盘不遮挡屏幕"相关的内容,本章回中将介绍如何有效地缓冲网络图片.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的…

ArcGIS学习(七)图片数据矢量化

ArcGIS学习(七)图片数据矢量化 通过上面几个任务的学习,大家应该已经掌握了ArcGIS的基础操作,并且学习了坐标系和地理数据库这两个非常重要且稍微难一些的专题。从这一任务开始,让我们进入到实战案例板块。 首先进入第一个案例一一图片数据矢量化。 我们在平时的工作学…

单片机学习笔记---AT24C02数据存储

目录 AT24C02数据存储 准备工作 代码讲解 I2C.c 模拟起始位置的时序 模拟发送一个字节的时序 模拟接收应答的时序 模拟接收一个字节的时序 模拟发送应答的时序 模拟结束位置的时序 I2C.h AT24C02.c 字节写&#xff1a;在WORD ADDRESS&#xff08;字地址&#xff…

探索Nginx:强大的开源Web服务器与反向代理

一、引言 随着互联网的飞速发展&#xff0c;Web服务器在现代技术架构中扮演着至关重要的角色。Nginx&#xff08;发音为“engine x”&#xff09;是一个高性能的HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP代理服务器。Nginx因其卓越的性能、稳定性和灵活性&…

汽车零部件制造业MES系统解决方案

一、​汽车零部件行业现状 随着全球汽车产业不断升级&#xff0c;汽车零部件市场竞争日趋激烈&#xff0c;从上游的钢铁、塑料、橡胶等生产到下游的主机厂配套制造&#xff0c;均已成为全球各国汽车制造大佬战略目标调整的焦点&#xff0c;其意欲在汽车零部件行业快速开疆扩土&…

C++内联函数深入讲解

用法&#xff1a; 在函数的返回值前面加上inline&#xff0c;例如&#xff1a; 作用&#xff1a; 内联函数的存在其实是为了解决c语言中一些问题&#xff0c;比如有一个频繁调用的小函数&#xff0c;每次调用都需要建立栈帧&#xff0c;压栈出栈&#xff0c;减少了效率&#xf…

分享86个鼠标特效,总有一款适合您

分享86个鼠标特效&#xff0c;总有一款适合您 86个鼠标特效下载链接&#xff1a;https://pan.baidu.com/s/12Y_iMqt-7-jyw46k62ySDg?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不…

PKI - 借助Nginx实现_客户端使用自签证书供服务端验证

文章目录 Pre概述在 Nginx 中实现客户端使用自签名证书供服务器验证1. 生成客户端密钥对2. 生成自签名客户端证书3. 配置 Nginx4. 重启 Nginx 修5. 验证 在浏览器中安装客户端证书以便进行访问 Pre PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证 PKI - 数…

【Java EE初阶十二】网络编程TCP/IP协议(一)

1. 网络编程 通过网络&#xff0c;让两个主机之间能够进行通信->就这样的通信来完成一定的功能&#xff0c;进行网络编程的时候&#xff0c;需要操作系统给咱们提供一组API&#xff0c;通过这些API来完成编程&#xff1b;API可以认为是应用层和传输层之间交互的路径&#xf…

轴角与旋转矩阵、欧拉角与旋转矩阵、四元数与旋转矩阵的转换

一、轴角转换成旋转矩阵 C实现 #include <iostream> #include <Eigen/Dense> #define _USE_MATH_DEFINES #include <math.h> using namespace std;int main() {double theta M_PI/2;//90度Eigen::Vector3d xyz(1, 0, 0);//x轴Eigen::AngleAxisd rotation_…