未找到 Puppet 节点,未使用默认节点
Puppet node not found, default node not used
我在我的主人和两者(测试和生产)中使用环境。两种环境的 environment.conf
(在两种环境中相同)包含:
modulepath = ./modules:../common/modules
manifest = ./main.pp
main.pp
文件(同样相同)包含:
include(lookup('classes', { 'merge' => 'unique' }))
node default { }
我目前有一个 ENC shell 脚本,实际上是一行,只是输出用于节点的环境,这似乎并不是必需的,因为它也在 puppet.conf
中,所以我正在尝试删除 ENC。 运行 puppet agent
在没有配置 ENC 的情况下主机上工作正常。但是,当我尝试在新节点上 运行 puppet agent
时,没有在主节点上配置 ENC,我得到这个响应:
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Failed when searching for node [...]: You must set the 'external_nodes' parameter to use the external node terminus
即使我在两个环境中注释掉 default
节点,我仍然会收到此错误。即使在 puppet agent
命令行 and/or in [master]
within 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
You must set the 'external_nodes' parameter to use the external node terminus
这表明 ENC 没有完全取消配置。
检查 puppet.conf 中是否有这样一行,然后将其删除或注释掉:
node_terminus = exec
不幸的是,在这种情况下,这是一个非常愚蠢的问题;我需要做的就是重新启动 Puppet master 进程。
我正在更新配置文件,当我触摸主 puppet.conf
文件时,它记录了它正在重新加载整个配置,但它显然没有刷新 ENC 配置。
令人惊讶的是我在关闭和重新打开之前浪费了多少时间...
我在我的主人和两者(测试和生产)中使用环境。两种环境的 environment.conf
(在两种环境中相同)包含:
modulepath = ./modules:../common/modules
manifest = ./main.pp
main.pp
文件(同样相同)包含:
include(lookup('classes', { 'merge' => 'unique' }))
node default { }
我目前有一个 ENC shell 脚本,实际上是一行,只是输出用于节点的环境,这似乎并不是必需的,因为它也在 puppet.conf
中,所以我正在尝试删除 ENC。 运行 puppet agent
在没有配置 ENC 的情况下主机上工作正常。但是,当我尝试在新节点上 运行 puppet agent
时,没有在主节点上配置 ENC,我得到这个响应:
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Failed when searching for node [...]: You must set the 'external_nodes' parameter to use the external node terminus
即使我在两个环境中注释掉 default
节点,我仍然会收到此错误。即使在 puppet agent
命令行 and/or in [master]
within 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
You must set the 'external_nodes' parameter to use the external node terminus
这表明 ENC 没有完全取消配置。
检查 puppet.conf 中是否有这样一行,然后将其删除或注释掉:
node_terminus = exec
不幸的是,在这种情况下,这是一个非常愚蠢的问题;我需要做的就是重新启动 Puppet master 进程。
我正在更新配置文件,当我触摸主 puppet.conf
文件时,它记录了它正在重新加载整个配置,但它显然没有刷新 ENC 配置。
令人惊讶的是我在关闭和重新打开之前浪费了多少时间...