Puppet 未找到傀儡节点,未使用默认节点

Puppet 未找到傀儡节点,未使用默认节点,puppet,Puppet,我在我的主机上使用环境,在测试和产品中都使用环境。两种环境的environment.conf(在两种环境中相同)包含: modulepath = ./modules:../common/modules manifest = ./main.pp include(lookup('classes', { 'merge' => 'unique' })) node default { } main.pp文件(同样相同)包含: modulepath = ./modules:../common/mo

我在我的主机上使用环境,在测试和产品中都使用环境。两种环境的
environment.conf
(在两种环境中相同)包含:

modulepath = ./modules:../common/modules
manifest = ./main.pp
include(lookup('classes', { 'merge' => 'unique' }))
node default { }
main.pp
文件(同样相同)包含:

modulepath = ./modules:../common/modules
manifest = ./main.pp
include(lookup('classes', { 'merge' => 'unique' }))
node default { }
我目前有一个ENC shell脚本,它实际上是一行,只输出用于节点的环境,这似乎不是必需的,因为它也在
puppet.conf
中,所以我正在尝试删除ENC。在主服务器上运行
puppet代理
可以在没有配置ENC的情况下正常工作。但是,当我尝试在新节点上运行
puppet agent
时,如果没有在主节点上配置ENC,我会得到以下响应:

错误:无法从远程服务器检索目录:服务器上的错误500:服务器错误:搜索节点[…]时失败:必须设置“external_nodes”参数才能使用外部节点终端

即使在这两种环境中我都注释掉了
default
节点,我仍然会得到这个错误。即使在新节点上的
puppet代理
命令行和/或
[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
必须设置“外部节点”参数才能使用外部节点端点

这表明ENC未完全取消配置

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

node_terminus = exec

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

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


令人惊讶的是,我在这个问题上浪费了多少时间,然后又一次关掉它…

对,我曾经有过,但我也删除了这一行。我将更新整个文件。嗯,它看起来可能是Puppet正在缓存一些配置信息,而不是在它说要重新加载时全部重新加载。重新启动它成功了(我使用
--无daemonize--verbose
进行调试)。因为问题是通过重新启动主机解决的,所以我决定关闭它,因为它是不可修复的。从技术上讲,它是可复制的,只需使用ENC配置启动Puppet,然后在不重新启动的情况下更改配置。不过,我可以关闭它。