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
几个月前,我收到了一封来自某人的电子邮件,称他无法让上述工作发挥作用。事实证明,我对自己的鞋匠做了一些修复和更换,但我已经忘记了。所以我为刚刚成为主干一部分的主线补鞋匠提供了关键的修复。我还创建了一些额外的支持文档。
PXE ROM 需要来自 DHCP 服务器的“next-server”指令才能找到并加载引导加载程序(无论是 grub、pxelinux 还是任何其他引导加载程序)。如果未提供“下一个服务器”,则由 PXE ROM 决定要做什么。你必须查看你的网卡 bios 配置,看看是否有一个选项可以手动指定服务器。
正如上面的答案所指出的,使用自定义 ISO 或 USB 记忆棒引导机器,并且内核命令行中已经提供了所有信息可能是最好的方法。如果您无权访问 DHCP 服务器的配置。
我们所做的就是挂载我们制作的 ISO 文件,从中引导内核和 initrd,并让它从中央位置加载 kickstart。然后,此 kickstart 文件指向包含 RPM 文件的存储库,该存储库可能是您的 cobbler 服务器。
我对 Cobbler 没有太多经验(遗憾的是),但也许这对你来说是一个选择?