我的 Puppet 主服务器上有 2 个环境的文件结构。ls /etc/puppetlabs/code/environments/
在主服务器上运行会返回两个文件夹beta
和production
。
然而,当我继续我的代理并运行时,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 服务器通信时造成混淆