如何动态地给vSphere虚拟机模板注入信息
在做vSphere自动化安装过程中,遇到这样一个需求:将vCenter Server做成模板,在给用户自动化装好vSphere后,
下载vCenter Server模板并启动虚拟机,然后将vCenter Server的IP返回给用户,用户即可使用vSphere集群。
可是vCenter Server的IP不是固定的,而是在自动化安装vSphere集群请求到来时由网络模块分配并发送过来的,因
此在做vCenter Server模板时是无法写入某个IP的。那如果在vCenter Server虚拟机启动前,将网络模块发送过来的IP
注入到模板的配置文件中,然后vCenter Server虚拟机启动后使用内部命令获取到这个IP给自己配上,这样用户就可
以使用该IP连接vCenter Server了。
这个哥们写了很多VMware相关的技术文章,但还是没有提到这个问题的解决办法,韦哥经过自己琢磨,找到一种方
法:
在vSphere中,每个虚拟机都带有一个后缀名为vmx的文件,这个文件干嘛呢,看这里。在虚拟机启动前,往vmx文
件注入一些信息,shell脚本如下:
echo guestinfo.mgr_ip = "$cluster_ip" >> /vmfs/volumes/$datastore/vcenter_server/vcenter_server.vmx
echo guestinfo.mgr_netmask = "$cluster_netmask" >>/vmfs/volumes/$datastore/vcenter_server/vcenter_server.vmx
echo guestinfo.mgr_gateway = "$cluster_gateway" >>/vmfs/volumes/$datastore/vcenter_server/vcenter_server.vmx
其中cluster_ip,cluster_netmask,cluster_gateway的值就是之后vCenter Server启动后给自己配置的IP信息。然后
在宿主机内启动vCenter Server虚拟机:
#Power VCSA on
vim-cmd vmsvc/getallvms|grep vcenter_server|awk {'print $1'}|xargs vim-cmd vmsvc/power.on
在vCenter Server内部,第一次开机启动时,执行下面的命令提取出之前注入配置文件的IP信息,给自己配上:
cluster_ip=`vmtoolsd --cmd "info-get guestinfo.mgr_ip"`
cluster_netmask=`vmtoolsd --cmd "info-get guestinfo.mgr_netmask"`
cluster_gateway=`vmtoolsd --cmd "info-get guestinfo.mgr_gateway"`
sed -i "s/IPADDR=/IPADDR=$mgr_ip/g" /etc/sysconfig/network/ifcfg-eth0
sed -i "s/NETMASK=/NETMASK=$mgr_netmask/g" /etc/sysconfig/network/ifcfg-eth0
echo "$mgr_gateway" >> /etc/sysconfig/network/routes
完,如果这个方法对你有用,请点个赞,好让韦哥知道真还有人用到。
如何动态地给vSphere虚拟机模板注入信息的更多相关文章
- 华为云计算IE面试笔记-桌面云中的用户组、虚拟机模板、模板虚拟机、虚拟机组和桌面组的关系及区别。发放完整复制和链接克隆虚拟机时,步骤有什么区别,要怎么选择桌面组?
概念解释: 模板虚拟机:FC上创建的裸虚拟机,用于制作不同类型的虚拟机模板. 虚拟机模板:用于创建虚拟机的模板,对裸虚拟机(模板虚拟机)进行配置或自定义安装软件后,转为模板.虚拟机模板类型有完整复制, ...
- python 模板注入
今天学习了python的模板注入,这里自己搭建环境测试以下,参考文章:http://www.freebuf.com/articles/web/136118.html web 程序包括两个文件: fla ...
- 威胁预警|Solr velocity模板注入远程命令执行已加入watchbog武器库,漏洞修补时间窗口越来越短
概述 近日,阿里云安全团队监测到挖矿团伙watchbog更新了其使用的武器库,增加了最新Solr Velocity 模板注入远程命令执行漏洞的攻击方式,攻击成功后会下载门罗币挖矿程序进行牟利.建议用户 ...
- SSTI(服务器模板注入)学习
SSTI(服务器模板注入)学习 0x01 SSTI概念 SSTI看到ss两个字母就会想到服务器,常见的还有SSRF(服务器端请求伪造).SSTI就是服务器端模板注入(Server-Side Templ ...
- 1. SSTI(模板注入)漏洞(入门篇)
好久没更新博客了,现在主要在作源码审计相关工作,在工作中也遇到了各种语言导致的一些SSTI,今天就来大概说一下SSTI模板注入这个老生常谈的漏洞 前言 模板引擎 模板引擎(这里特指用于Web开发的模板 ...
- SSTI服务端模板注入漏洞原理详解及利用姿势集锦
目录 基本概念 模板引擎 SSTI Jinja2 Python基础 漏洞原理 代码复现 Payload解析 常规绕过姿势 其他Payload 过滤关键字 过滤中括号 过滤下划线 过滤点.(适用于Fla ...
- [New Portal]Windows Azure Virtual Machine (11) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (1)
<Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...
- [New Portal]Windows Azure Virtual Machine (12) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (2)
<Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...
- [New Portal]Windows Azure Virtual Machine (13) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (3)
<Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...
随机推荐
- Delphi第三方控件安装卸载指南
基本安装1.对于单个控件,Componet-->install component..-->PAS或DCU文件-->install; 2.对于带*.dpk文件的控件包,File--& ...
- pytorch中torch.unsqueeze()函数与np.expand_dims()
numpy.expand_dims(a, axis) Expand the shape of an array. Insert a new axis that will appear at the a ...
- Non-maximum suppression(非极大值抑制算法)
在RCNN系列目标检测中,有一个重要的算法,用于消除一些冗余的bounding box,这就是non-maximum suppression算法. 这里有一篇博客写的挺好的: http://www.c ...
- Android ListView子item高度定长固定值无效问题
在项目开发中遇到一个实际问题:ListView中,打算给每个子item设定一个具体的高度值如128dp,256dp,在子item中把根布局的高度值写死写成定长,但是不管怎么样,高度一直都没变化.开始以 ...
- [Vijos1308]埃及分数(迭代加深搜索 + 剪枝)
传送门 迭代加深搜索是必须的,先枚举加数个数 然后搜索分母 这里有一个强大的剪枝,就是确定分母的范围 #include <cstdio> #include <cstring> ...
- BZOJ2241 [SDOI2011]打地鼠 【模拟】
题目 打地鼠是这样的一个游戏:地面上有一些地鼠洞,地鼠们会不时从洞里探出头来很短时间后又缩回洞中.玩家的目标是在地鼠伸出头时,用锤子砸其头部,砸到的地鼠越多分数也就越高. 游戏中的锤子每次只能打一只地 ...
- P1136 迎接仪式 (动态规划)
题目描述 LHX教主要来X市指导OI学习工作了.为了迎接教主,在一条道路旁,一群Orz教主er穿着文化衫站在道路两旁迎接教主,每件文化衫上都印着大字.一旁的Orzer依次摆出“欢迎欢迎欢迎欢迎……”的 ...
- iOS 收款计算器算法
一个收款计算器算法,从之前高仿有赞Demo里面抽离的一个界面 demo 在这里 https://github.com/L-vinCent/calculView_function 显示计算记录 不能连续 ...
- vs2005做的留言本——天轰川下载
原文发布时间为:2008-08-01 -- 来源于本人的百度文章 [由搬家工具导入] 这个虽然单纯是个留言本,但是在功能上我都使用了尽量不重复的解决方法,所以我自认为非常适合入门级的朋友看,而且用了我 ...
- Golang中的panic和recover(捕获异常)
func panic(interface{})和func recover() interface{}是Golang中用于错误处理的两个函数. panic的作用就是抛出一条错误信息,从它的参数类型可以看 ...