为什么 Puppet 代理无法识别环境?

为什么 Puppet 代理无法识别环境?

我已经配置了动态环境,puppet.conf例如:

 modulepath = $confdir/environments/$environment/modules
 manifest = $confdir/environments/$environment/site/manifests/site.pp
 environmentpath = /etc/puppetlabs/puppet/environments

我的environments目录具有环境以及manifest/site.pp文件和modules目录。

但是当我运行代理时sudo puppet agent --test --environment=test 出现以下错误(我没有production在代理的puppet.conf文件中设置环境):

Warning: Local environment: "test" doesn't match server specified node environment "production", switching agent to "production".

它仅适用于生产环境的模块。

我正在使用 Puppet Enterprise 3.7.3。

答案1

事实证明,因为我使用的是 PE 版本,所以节点被自动分类到环境中production,因此出现了问题。将环境更改为agent-specified分类部分有效。

答案2

我没有解释,但我有 3.73 并且使用环境没有问题。我的puppet.conf文件包含:environmentpath=$confdir/environments但不包含manifestmodulepath条目。

environment.conf模块和清单路径在环境目录的根目录中定义:

manifest = manifests/
modulepath = modules:site

至于代理,我修改了puppet.conf节点以指定环境,但您放置的参数应该可以工作(它确实清楚地告诉代理根据您提供的错误使用哪个环境)。

相关内容