找不到Puppet节点,默认节点未使用

时间:2017-02-26 14:57:02

标签: puppet

我正在使用我的主人和两者的环境(测试和刺激)。两个环境的environment.conf(在两种环境中都相同)包含:

modulepath = ./modules:../common/modules
manifest = ./main.pp

main.pp文件(也相同)包含:

include(lookup('classes', { 'merge' => 'unique' }))
node default { }

我目前有一个ENC shell脚本,实际上是一行,只输出用于节点的环境,这似乎并不是必需的,因为它也在puppet.conf,所以我试图删除ENC。在没有配置ENC的情况下,在主服务器上运行puppet agent工作正常。但是,当我尝试在新节点上运行puppet agent时,如果没有在主节点上配置ENC,我会收到此响应:

  

错误:无法从远程服务器检索目录:SERVER上的错误500:服务器错误:搜索节点时失败[...]:您必须设置'external_nodes'参数以使用外部节点终端

即使我在两个环境中都注释掉default节点,我仍然会收到此错误。即使在puppet agent命令行上和/或新节点上[master]内的puppet.conf中指定环境,我也会遇到相同的错误。

我确实使用Hiera,并且Hiera有一个节点文件用于新节点,虽然它没有提供节点定义(据我所知),所以我不知道它是否已经达到了那么远。我希望它能使用default节点并从Hiera获取类。

我想我的问题是为什么它会给我这个错误,它不应该使用默认节点吗?

更新1:

以下是分发的puppet.conf

[agent]
server = puppet-prod.foo.com

[main]
environment = prod

[master]
dns_alt_names = puppet-prod,puppet-prod.foo.com

这些是为了摆脱ENC而删除的行:

external_nodes = /usr/local/bin/puppet-node-classifier
node_terminus = exec
trusted_server_facts = true

2 个答案:

答案 0 :(得分:1)

  

您必须将'external_nodes'参数设置为使用外部节点终端

这表明ENC没有完全解除配置。

在puppet.conf中检查这样的行,并删除或注释掉它:

node_terminus = exec

答案 1 :(得分:0)

不幸的是,在这种情况下,这是一个非常愚蠢的问题;我需要做的就是重新启动Puppet主进程。

我正在更新配置文件,当我触摸主puppet.conf文件时,它正在记录它正在重新加载整个配置,但它显然没有刷新ENC配置。

令人惊讶的是,在将其关闭再打开之前我浪费了多少时间......