在做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

完,如果这个方法对你有用,请点个赞,好让韦哥知道真还有人用到。

最新文章

  1. [资料分享]组件方式开发 Web App全站
  2. 端口映射工具--socat
  3. [模板总结] Java的一些模板
  4. Selenium2Library系列 keywords 之 _SelectElementKeywords 之 page_should_contain_list(self, locator, message='', loglevel='INFO')
  5. VLC客户端和SDK的简单应用
  6. Which PHP mode? Apache vs CGI vs FastCGI
  7. 转 ——eclipse下进行Python开发 环境配置
  8. codeforces 463E . Caisa and Tree
  9. Windows Phone开发(3):棋子未动,先观全局
  10. 河南多校大一训练赛 G 硬币
  11. cms基本概念(dedecms,phpcms)
  12. RabbitMQ 1-入门学习
  13. Eclipse项目分组管理
  14. 2018.3.29 div格式设置
  15. ElasticSearch Index操作源码分析
  16. 2018-02-17 中文代码示例[译]Scala中创建隐式函数
  17. Android中处理崩溃闪退错误
  18. [转帖]从1G到5G
  19. FreeRTOS 中 systick 相关配置
  20. nginx php上传大文件的设置(php-fpm)

热门文章

  1. Matplotlib基本图形之直方图
  2. 84. Spring Boot集成MongoDB【从零开始学Spring Boot】
  3. 简单介绍一下solr?
  4. BZOJ 3925 [Zjoi2015]地震后的幻想乡 ——期望DP
  5. 常州模拟赛d1t5 遗忘口令
  6. 【CCF】通信网络 简单搜索
  7. 【bzoj2733】[HNOI2012]永无乡 线段树合并
  8. 洛谷 [P1436] 反素数
  9. AFNetworking实时监测网络连接
  10. cmd指令