我正在做一个宠物项目,我想弄清楚应该从哪里开始实现以下功能:
我有一个 PXE 启动 rom,可以进行老化测试,我的老化测试在 PXE/DHCP 服务器上设置了一个标志。
如果客户端正在启动并且没有标志,我想提供我的 PXE 启动 rom。
如果客户端确实有该标志,我只想跳过 pxe 启动。
我可以通过 pxe 配置来做到这一点 - 但对于整个子网。我如何管理每个 MAC?
编辑:我想值得一提的是,我可以通过 Linux 或 Windows Server 2008 来实现这一点,而这实际上取决于哪个更容易实现这一点。我可能更喜欢在 .net 中编写用于管理 DHCP 设置的界面,而不是使用 Java 或其他语言,但我想 dhcpd.conf 会更直接。
答案1
看看 Foreman 是如何做到这一点的。您将每台机器设置为 PXE 启动,并且您有一个 TTL 非常低的“默认”pxelinux.cfg。此默认配置有一个条目,即 localboot。
当您想将一台机器切换到 PXE 启动其他机器时,您可以为其创建一个配置文件(基于 MAC 或 IP)。下次启动时,它会提取最具体的配置文件并正常启动。所有其他机器都使用默认配置文件,它什么也不做。
答案2
我在我的 iPXE 菜单中执行此操作,您可以在https://gist.github.com/robinsmidsrod/2234639。
它模拟与 PXELinux 相同的行为,bust 在处理方式上更灵活一些,因为您可以根据 MAC、主机名、UUID 或网络适配器类型为单个客户端命名自定义启动文件。
使用一些 shell 脚本,您可以轻松地根据需要为客户端创建这些配置文件。