当文件夹存在时,Puppet::Environments::EnvironmentNotFound

当文件夹存在时,Puppet::Environments::EnvironmentNotFound

我的 Puppet 主服务器上有 2 个环境的文件结构。ls /etc/puppetlabs/code/environments/在主服务器上运行会返回两个文件夹betaproduction

然而,当我继续我的代理并运行时,puppet apply -t --environment beta我收到错误:

/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/environments.rb:38:in `get!':
Could not find a directory environment named 'beta' anywhere in the path: /etc/puppetlabs/code/environments.
Does the directory exist? (Puppet::Environments::EnvironmentNotFound)

在主服务器上,我可以使用 成功应用测试版清单puppet apply /etc/puppetlabs/code/environments/beta/manifests/site.pp

我想知道为什么 Puppet 检测不到该文件夹​​。我该如何调试这个问题?

我也尝试了puppet agent -t --environment beta,按照@gd_的建议,返回:

注意:本地环境:“beta”与服务器指定的节点环境“production”不匹配,将代理切换为“production”。

/etc/puppetlabs/puppet/puppet.conf(关于代理)如下:

# This file can be used to override the default puppet settings.
# See the following links for more details on what settings are available:
# - https://docs.puppetlabs.com/puppet/latest/reference/config_important_settings.html
# - https://docs.puppetlabs.com/puppet/latest/reference/config_about_settings.html
# - https://docs.puppetlabs.com/puppet/latest/reference/config_file_main.html
# - https://docs.puppetlabs.com/puppet/latest/reference/configuration.html

使用开源版本。

答案1

使用puppet agent ..., 而不是puppet apply ...。您使用的参数适用于前者,而不是后者。

答案2

另一个选择是/etc/hosts代理 - 服务器的名称与命令结果中显示的名称不同,hostname 这可能会在代理与 Puppet 服务器通信时造成混淆

相关内容