配置集成的 DHCP 服务器¶
使用集成的 DHCP 服务器设置静态 DHCP 分配¶
您可以使用 ipv4_address 参数并设置 inventory_dhcp 设置为 true 的值来设置静态 DHCP 预留。 这将导致 dnsmasq 中定义的硬件 MAC 地址列表中的第一个 MAC 地址接收静态地址分配。
强制 DNS 解析到 ipv4_address¶
dnsmasq 将解析租约文件中每个服务器分配到的所有条目到 IP。 但是,如果您正在使用多个网络,则此 IP 并不总是期望的 IP。 要强制 DNS 始终解析到 ipv4_address,请将 inventory_dns 设置设置为 true 的值。 这将导致每个服务器通过显式使用 dnsmasq 的地址功能解析到 ipv4_address。
扩展 dnsmasq 配置¶
Bifrost 在 /etc/dnsmasq.conf 中管理 dnsmasq 配置文件。 在写入文件后,不建议对其进行手动修改。 dnsmasq 支持在 /etc/dnsmasq.d 中使用其他配置文件,从而扩展 bifrost 提供的 dnsmasq 配置。 可以使用此机制为 ironic 管理的系统提供额外的 DHCP 选项,甚至为不由 ironic 管理的系统创建 DHCP 启动环境。 例如,创建一个文件 /etc/dnsmasq.d/example.conf,内容如下
dhcp-match=set:<tag>,<match criteria>
dhcp-boot=tag:<tag>,<boot options>
应根据您的环境修改标签、匹配标准和启动选项。 在这里,我们使用 dnsmasq 标签来匹配我们想要管理的宿主机。 dnsmasq 将使用最后一个匹配的带标签的 dhcp-boot 选项,或者如果没有匹配项,则使用未带标签的默认 dhcp-boot 选项。 这些选项将插入到 dnsmasq 配置文件的 conf-dir=/etc/dnsmasq.d 行中。 配置完成后,向 dnsmasq 发送 HUP 信号,这将导致它重新读取其配置
killall -HUP dnsmasq
将 Bifrost 与您自己的 DHCP 服务器一起使用¶
用户可能已经在其网络上拥有动态主机配置协议 (DHCP) 服务器的可能性是存在的。
目前,当 Ironic 配置为独立模式时,不使用 DHCP 提供程序。 这需要手动配置 DHCP 服务器才能部署镜像。 Bifrost 利用 dnsmasq 实现此功能;但是,可以使用任何 DHCP 服务器。 这主要用于在单个平面网络的环境中运行,尽管从概念上讲,节点可以被隔离。
所需内容
网络段上的 DHCP 服务器
更改 DHCP 设置的适当权限
对 API 和 conductor 的网络访问。 请记住,iPXE 镜像不支持 ICMP 重定向。
示例 DHCP 服务器配置¶
在下面的示例中,使用了端口 8080。 但是,端口号可能因环境配置而异。
dnsmasq
dhcp-match=set:ipxe,175 # iPXE sends a 175 option.
dhcp-boot=tag:ipxe,http://<Bifrost Host IP Address>:8080/boot.ipxe
dhcp-boot=/undionly.kpxe,<TFTP Server Hostname>,<TFTP Server IP Address>
互联网系统联盟 DHCPd
if exists user-class and option user-class = "iPXE" {
filename "http://<Bifrost Host IP Address>:8080/boot.ipxe";
} else {
filename "/undionly.kpxe";
next-server <TFTP Server IP Address>;
}
架构¶
应该强调的是,Ironic 在独立模式下仅打算在受信任的环境中使用。
+-------------+
| DHCP Server |
+-------------+
|
+--------Trusted-Network----------+
| |
+-------------+ +-----------+
|Ironic Server| | Server |
+-------------+ +-----------+