我正在尝试编译(到目录中)要在特定 Puppet 代理节点上运行的清单。我在 Puppet Master 和代理服务器上使用 Puppet 3.4。我在 AWS 上使用 Ubuntu。这是我在 Puppet Master 上运行的命令: puppet apply june1.pp
输出如下:
Error: Could not find default node or by name with 'puppet.us-west-1.compute.internal, puppet.us-west-1.compute, puppet.us-west-1, puppet' on node puppet.us-west-1.compute.internal
Error: Could not find default node or by name with 'puppet.us-west-1.compute.internal, puppet.us-west-1.compute, puppet.us-west-1, puppet' on node puppet.us-west-1.compute.internal
输出结果出乎意料。上面输出中的 FQDN 是针对 Puppet 主服务器的。清单 june1.pp 是专门为 Puppet 代理服务器配置的(源文件除外)。清单中要复制的文件的源指的是 Puppet 主服务器。我尝试删除对 Puppet 主服务器本身的引用(这会使清单出现缺陷),然后查看 puppet apply 命令生成什么消息。果然,我收到了相同的输出。我不明白为什么清单生成与 Puppet 主服务器相关的输出,而清单中没有提到 Puppet 主服务器本身。
我应该怎么做才能将清单编译到目录中,以便 Puppet 代理最终在名为 june1.pp 的清单中获得所需的状态配置更改?
答案1
如果您在主机中运行puppet apply filename.pp
,则需要将 Puppet Master 声明为节点或声明default node
。
正如您在输出中看到的那样,问题非常清楚,为了声明默认节点,您需要执行以下操作。
/etc/puppet/manifests/nodes/default.pp
node default {
include sshcon, motdclass, virtualhost
}
您不需要包含任何东西。