configurationOpenNebula以使用DHCP

我试图configurationOpenNebula使用我的networking上已经存在的DHCP服务器。 是的,我已经知道OpenNebulapipe理虚拟MAC地址,而不是IP地址,但是这并不能告诉我如何使这个工作。 ;)

我的客人和主机都是CentOS,所以我想所有需要做的事情就是configuration上下文,以便将BOOTPROTO = dhcp转储到/ etc / sysconfig / network-scripts / ifcfg-eth0中。

  1. 如何configuration上下文以便发生这种情况? 我只是以某种方式修改我的模板? 如果是这样,那是怎么做的?
  2. 一旦我使用这些新的上下文设置来configuration我的模板,我应该如何configuration我的虚拟networking?

看起来这应该很容易做到,因为这应该比pipe理一些vms的静态IP更简单,你会认为这是一个常见的用例。 不过,迄今为止,Google的search量已经很小了。

谢谢!!

编辑:如果我手动设置BOOTPROTO = dhcp和DHCP_HOSTNAME = foo,并且在我的虚拟机上重新启动networking,我的DHCP服务器成功给我的vm一个ip地址。 这是好的,我想能够设置虚拟机的主机名我旋转起来。

现在只需要确定如何让ONE自动/通过Web界面或CLI工具来完成这些工作。 还有一个仍然列出原始租约的IP地址,而不是DHCP给我的虚拟机的IP。 如果能解决这个问题,那也不错。

我的Opennebula是4.8.0版本。 我有类似的需求,所以这就是我所做的:

  1. 我configuration了我们networking中已经存在的DHCP服务器,为DHCP保留一个IP范围。 范围是:10.23.1.201 – 10.23.1.254。 这是54个dynamicIP。
  2. 我创build了一个新的虚拟networking,我命名为“DHCP”。 在“地址”选项卡上,我select了单选button“以太网”。 这样Opennebula只会给使用这个networking的虚拟机提供MAC地址。 我把“MAC Start”留空,因为它是可选的。 我在“大小”字段中input了54,因为我的DHCP可以提供这么多的dynamicIP地址。 所以,Opennebula给新的虚拟机只有一个mac地址,没有更多。

来宾操作系统必须手动设置为使用DHCP。 我不知道该怎么做,但这不是一个大问题。

这里是我如何进一步有一个使用DHCP的模板。 我继续安装一个新的操作系统,例如CentOS 6.5。

  1. 我使用这个新的虚拟networking和两个磁盘创build了一个模板 – 一个ISO映像和一个空的数据块映像设置为“persistent = yes”。
  2. 然后,我实例化模板,VM从ISO启动,当我安装虚拟机时,我将networkingconfiguration保留为“dynamic”。
  3. 安装完成后,我的虚拟机会自动从DHCP服务器分配IP,就像它是一台真实机器一样。
  4. 然后我停止并删除虚拟机。
  5. 将数据块映像设回“persistent = no”。

现在,每个从该模板产生的新虚拟机将使用“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可以做我认为你需要的东西。