![为什么 Puppet 代理无法识别环境?](https://linux22.com/image/652086/%E4%B8%BA%E4%BB%80%E4%B9%88%20Puppet%20%E4%BB%A3%E7%90%86%E6%97%A0%E6%B3%95%E8%AF%86%E5%88%AB%E7%8E%AF%E5%A2%83%EF%BC%9F.png)
我已经配置了动态环境,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
但不包含manifest
或modulepath
条目。
environment.conf
模块和清单路径在环境目录的根目录中定义:
manifest = manifests/
modulepath = modules:site
至于代理,我修改了puppet.conf
节点以指定环境,但您放置的参数应该可以工作(它确实清楚地告诉代理根据您提供的错误使用哪个环境)。