【问题标题】:How do I use puppet to configure network settings?如何使用 puppet 配置网络设置?
【发布时间】:2015-03-15 15:05:21
【问题描述】:

我编写了一个模块,可以在我的系统上配置网络设置,但我无法应用清单,因为在应用清单之前,它会执行“facter ipaddress”来查找和呈现全局事实。

这是否意味着为了应用 puppet manifest 我们必须配置 IP ?

所以我有一个没有配置 IP 地址的系统,我想使用 puppet 为我配置该 IP 地址,因为我要求用户输入我保存在 .csv 文件中的 IP 地址,然后我是使用模板配置 if-eth0 文件。模板将执行 extlookup 以填充模板中的字段,最终在清单中调用模板。所以问题是,在 puppet 应用任何东西之前,它无法运行并出现以下错误

事实IP地址无法解析IP,原因是匿名

【问题讨论】:

  • 我不知道你在问什么。如果您没有为您的问题提供任何 puppet 代码或任何错误消息,那么您将一无所获,浪费您的时间,浪费我们的时间。
  • 这是一个概念问题,如果您仔细阅读问题,我已经提到了错误。对木偶有很强的概念和技术背景的人应该很容易理解。您无法理解的困难是什么?如果您有任何具体问题,请随时提出,我会真诚地回答。这是我们应该能够为 stackflow 订阅者提供一些有意义的东西。
  • 不,提供的信息确实非常少。请通过 Pastebin 或类似方式提供puppet agent --test --debug --verbose --trace 的输出。
  • 好的,我这样说吧。我正在使用无主配置,所以基本上 puppet apply 是应用任何带有独立系统的清单的命令,该系统同时充当主配置和从配置。现在,在应用任何清单之前,会编译目录,并且在其编译过程中,会显示节点的事实,包括 IP 地址,但在我的情况下,目录编译失败,因为我的事实 ipaddress 没有为我的操作系统(即 SLES)初始化。所以木偶应用命令甚至没有开始。它与未初始化的事实因素 ipaddress 有关。现在有意义吗?
  • 这是我在运行 facter 时得到的错误:“Could not retrieve fact='ipaddress', resolution=': Network is unreachable -connect(2)”

标签: puppet sles


【解决方案1】:

我不确定实际问题(如果确实需要 IP)。但是,如果我理解正确,您可以尝试以下两种解决方法之一:

  1. 启用 DHCP

这样当您的系统启动时会花费更多时间(假设网络上没有 DHCP 服务)。将发生超时,在大多数情况下,会导致默认 IP(如果我记得的话,是 169.254.Y.Z)。在这种情况下,您可能需要在应用静态 IP 之前停止/终止 dhcp 客户端进程或重新启动接口以获取新配置。

  1. 分配默认静态 IP

如果您知道无论如何都会应用 puppet 配置(可能是在 rc.local 中的调用?),您可以使用静态 IP(即 10.1.1.10)配置您的接口以避免错误消息。这是暂时的,因为一旦 puppet 运行,就会应用正确的配置。

希望对你有帮助,

安德烈亚斯

【讨论】:

  • Andreas,这是一个很好的解决方法,解决了我的问题,谢谢
猜你喜欢
  • 2014-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
  • 2015-02-01
  • 1970-01-01
  • 2016-01-11
  • 2018-08-24
相关资源
最近更新 更多