我试图configurationOpenNebula使用我的networking上已经存在的DHCP服务器。 是的,我已经知道OpenNebulapipe理虚拟MAC地址,而不是IP地址,但是这并不能告诉我如何使这个工作。 ;)
我的客人和主机都是CentOS,所以我想所有需要做的事情就是configuration上下文,以便将BOOTPROTO = dhcp转储到/ etc / sysconfig / network-scripts / ifcfg-eth0中。
看起来这应该很容易做到,因为这应该比pipe理一些vms的静态IP更简单,你会认为这是一个常见的用例。 不过,迄今为止,Google的search量已经很小了。
谢谢!!
编辑:如果我手动设置BOOTPROTO = dhcp和DHCP_HOSTNAME = foo,并且在我的虚拟机上重新启动networking,我的DHCP服务器成功给我的vm一个ip地址。 这是好的,我想能够设置虚拟机的主机名我旋转起来。
现在只需要确定如何让ONE自动/通过Web界面或CLI工具来完成这些工作。 还有一个仍然列出原始租约的IP地址,而不是DHCP给我的虚拟机的IP。 如果能解决这个问题,那也不错。
我的Opennebula是4.8.0版本。 我有类似的需求,所以这就是我所做的:
来宾操作系统必须手动设置为使用DHCP。 我不知道该怎么做,但这不是一个大问题。
这里是我如何进一步有一个使用DHCP的模板。 我继续安装一个新的操作系统,例如CentOS 6.5。
现在,每个从该模板产生的新虚拟机将使用“DHCP”虚拟networking,将具有dynamicIP地址,Opennebula将不会显示此类虚拟机的任何IP地址。
我无法回答关于主机名的自动设置,但我认为它必须是configuration客户操作系统和DHCP的问题。 另一方面,DHCP必须知道什么主机名给哪个MAC地址,因为Opennebula会dynamic地生成这些MAC地址,所以我不知道如何提前告诉DHCP服务器。
考虑使用dhcpdconfiguration位来设置新盒子上的临时主机名,直到您可以自己对其进行主机名。 它具有设置可用于连接的可猜测主机名的优点,而无需歪曲日志或猜测IP。
if (not (option host-name ~~ "^[a-z0-9][a-z0-9\-]+[a-z0-9]$")) { set new_host-name = concat("host-", binary-to-ascii(16, 8, "", substring(hardware, 1, 6))); log(concat("invalid hostname: ", option host-name, " => ", new_host-name)); ddns-hostname = new_host-name; } else { ddns-hostname = pick (option fqdn.hostname, option host-name, substring (option dhcp-client-identifier, 1, 20)); }
我从Peter Rathlev的一篇很棒的文章中find了这个: https ://lists.isc.org/pipermail/dhcp-users/2013-March/016518.html。 在回答另一个问题时,它提供了一个很好的例子,说明如何configurationdhcpd来完成令人惊奇的事情,至less可以做我认为你需要的东西。