我正在使用 Ubuntu 14.04 和 LXC 构建虚拟化环境。我不想编写自己的模板,因为从 12.04 升级到 14.04 表明无法保证向后兼容性。
因此,我使用默认的 Ubuntu 模板通过 lxc-create 部署我的虚拟机。服务器的 DNS 由 Amazon Route 53 提供,因此不需要本地 DNS 服务器。
我还使用 Puppet 来配置我的服务器,因此我希望尽量减少部署的手动工作量。
现在,默认的 Ubuntu 模板通过 DHCP 分配 IP 地址。因此,我需要一个本地 DHCP 服务器来为节点分配 IP 地址,以便我可以通过 SSH 连接到它们并让 Puppet 运行。由于 Puppet 需要正确的 DNS 设置,因此无法分配临时 IP 地址,客户端需要从一开始就获得正确的主机名和 IP 地址。
我使用什么 DHCP 服务器以及如何通过在该主机名上执行 DNS 查找来让它仅根据主机名 DHCP 选项分配 IP 地址?
我尝试使用 ISC DHCP 服务器使其工作,但是,手册明确指出:
请注意,只有 dhcp-client-identifier 选项和硬件地址可用于匹配主机声明或 DHCPv6 服务器的主机标识符选项参数。例如,不可能将主机声明与主机名选项相匹配。这是因为不能保证主机名选项对于任何给定的客户端都是唯一的,而硬件地址和 dhcp-client-identifier 选项至少在理论上保证对给定的客户端是唯一的。
我还尝试创建一个与主机名匹配的类,如下所示:
class "my-client-name" {
match if option host-name …Run Code Online (Sandbox Code Playgroud)