如何配置使Puppet lookup编译目录时包含server facts?
解决Puppet Lookup编译目录时缺失Server Facts的问题
问题根源
puppet lookup --compile 不会自动加载服务器端的facts(像server_facts['environment']这类),但puppet agent -t是完整的客户端触发编译流程,会自动带上这些server facts,所以两者行为不一致。
可行解决办法
1. 手动传入server facts文件
先把server facts导出到JSON文件:
puppet facts find --server <你的Puppet服务器地址> --render-as json > server_facts.json
然后执行lookup时附加参数:
puppet lookup --compile --node nodename module::keyname --server-facts server_facts.json
2. 修改Puppet配置文件默认启用
在/etc/puppetlabs/puppet/puppet.conf的[main]或[master]段添加:
server_facts = true
重启Puppet服务后,再执行puppet lookup --compile就会自动加载server facts。
3. 临时手动传入指定facts
如果只是临时测试,直接用--extra-vars传需要的server fact:
puppet lookup --compile --node nodename module::keyname --extra-vars '{"server_facts": {"environment": "production"}}'
验证
重新运行lookup命令,要是之前的notice($server_facts['environment'])能正常输出,且lookup不报错,就说明配置生效了。
内容的提问来源于stack exchange,提问作者Tedford
相关产品推荐
相关产品推荐

