如何使用 Puppet 和 NetworkManager 管理 resolv.conf?

如何使用 Puppet 和 NetworkManager 管理 resolv.conf?

我有一些主机有明确管理的resolv.conf文件。我还有其他依赖 NetworkManager 的人,它可以做很多事情,包括编写resolv.conf file.

是否有一致的方法来使用 Puppet 管理这些信息,例如我可以在某个模块中从语义上描述 DNS 服务器和搜索顺序,然后根据主机的配置方式期望发生正确的事情?

如果做不到这一点,是否有一个模块可以连接到 NetworkManager 来执行我想要的操作?写出一个显式resolv.conf文件是相当简单的,所以如果我走这条路,我不需要任何帮助。

答案1

当您使用 NetworkManager 时,它通常会进行管理,/etc/resolv.conf因此您不想直接使用 puppet 进行管理。相反,您想要管理有点依赖于发行版的配置文件。

但是配置的上游默认格式存储在/etc/NetworkManager/system-connections该目录中,您可以在该目录中删除新的配置文件,例如使用 puppet。另一种方法是让它通过 API 与 NetworkManager 对话(无论是直接通过 D-Bus 还是通过libnm, 甚至nmcli)。

仍然可以dns=none在主要部分中进行设置/etc/NetworkManager/NetworkManager.confresolv.conf自行处理。

相关内容