如果无法更改 dhcp 服务器,如何使用 PXE 设置 Cobbler?

Nie*_*jes 18 dhcp cobbler pxe-boot

过去,我通过使普通 dhcp 服务器返回网络启动所需的一切来设置 PXE 服务器多次:在单个 dhcp 设置中既有常规 ip 配置又有 bootinfo。这样很容易做到

根据我读过的文档(维基百科有一个很好的总结)应该可以有一个未修改的 dhcp 服务器(例如,如果您所在位置的管理员拒绝访问)和一个仅返回启动信息的单独服务器。这通常称为“PXE 服务器”或“代理 DHCP”服务器。过去我见过(未使用)这个 pxe 服务器(上次发布是 5 年前)。

昨天我安装了 Cobbler 来看看它到底做了什么。现在我想使用它(喜欢它的易用性)但是修改“主”dhcpd 服务器来获取 PXE 不是一个选项。

我找不到任何关于如何使用真正的 PXE(==代理 dhcp)服务器运行 cobbler 的文档。

这可以用鞋匠完成吗?

我可以将 isc dhcp 服务器配置为作为 PXE 服务器(即没有 ip 信息,只有引导信息)吗?

或者我应该采用完全不同的方法(如果是这样,您的建议是什么)?

谢谢


我刚刚发现的新发现:dnsmasq 2.4.8 版的变更日志说:

“代理-DHCP,其中 dnsmasq 只提供 PXE 信息,另一个 DHCP 服务器进行地址分配,也是允许的。”

很有意思。特别是因为 cobbler 已经可以控制 dnsmasq。


更新:

dnsmasq 2.51 将支持这个配置,它完全可以实现我想要的技巧。

我的 /etc/cobbler/dnsmasq.template 现在看起来像这样:

# Cobbler generated configuration file for dnsmasq
# $date
#

# resolve.conf .. ?
#no-poll
#enable-dbus
read-ethers
addn-hosts = /var/lib/cobbler/cobbler_hosts

# Be a proxyDHCP server
dhcp-range=10.10.0.0,proxy

# Only respond to clients that are known (i.e present in /etc/ethers)
dhcp-ignore=#known

# Set this (and domain: see below) if you want to have a domain
# automatically added to simple names in a hosts-file.
expand-hosts
domain=test.basjes.nl,10.10.15.0

# Loads <tftp-root>/pxelinux.0 from dnsmasq TFTP server.
pxe-service=x86PC, "Boot PXELinux (=Cobbler controlled)", pxelinux ,$next_server

$insert_cobbler_system_definitions
Run Code Online (Sandbox Code Playgroud)

更新:2012-04-30

几个月前,我收到了一封来自某人的电子邮件,称他无法让上述工作发挥作用。事实证明,我对自己的鞋匠做了一些修复和更换,但我已经忘记了。所以我为刚刚成为主干一部分的主线补鞋匠提供了关键的修复。我还创建了一些额外的支持文档

kat*_*iel 6

PXE ROM 需要来自 DHCP 服务器的“next-server”指令才能找到并加载引导加载程序(无论是 grub、pxelinux 还是任何其他引导加载程序)。如果未提供“下一个服务器”,则由 PXE ROM 决定要做什么。你必须查看你的网卡 bios 配置,看看是否有一个选项可以手动指定服务器。

正如上面的答案所指出的,使用自定义 ISO 或 USB 记忆棒引导机器,并且内核命令行中已经提供了所有信息可能是最好的方法。如果您无权访问 DHCP 服务器的配置。


wzz*_*zrd 3

我们所做的就是挂载我们制作的 ISO 文件,从中引导内核和 initrd,并让它从中央位置加载 kickstart。然后,此 kickstart 文件指向包含 RPM 文件的存储库,该存储库可能是您的 cobbler 服务器。

我对 Cobbler 没有太多经验(遗憾的是),但也许这对你来说是一个选择?