我看到一个关于这个被接受,然后在一年前closures的错误: http ://projects.puppetlabs.com/issues/3670,但我使用puppet 2.7.14,并得到同样的问题。
我试图用“傀儡独奏”(即只运行configuration在每个服务器上的木偶),因为我在这个项目中只有2或3个服务器,并且添加另一台服务器作为傀儡大师是完全矫枉过正的。 除非我误解了,手动将节点应用到服务器的最好方法是:
puppet master --compile=mynode > catalog.json puppet apply --catalog catalog.json
但puppet master命令会输出一些警告和通知给标准输出,混入所需的json内容。 它使用彩色的输出,所以我不能通过egrep -v '^warning:'pipe道egrep -v '^warning:'
编辑:我想这是不是太大的处理使用grep – 因为傀儡2.7漂亮 – 打印的实际内容和警告永远不会以空格开始,通过egrep '^( |{|})'pipe道输出egrep '^( |{|})'作品
所以我的问题基本上是:
puppet master停止作为一个混蛋,并将其错误发送到stderr而不是标准输出? 要在无主模式下运行,只需使用puppet apply而不需要单独的puppet master编译步骤。 这是完成它的正常方式,并且可以避免您在目录中使用日志消息时遇到的问题(尽pipe这确实应该被修复,票据仍然打开)。
你需要两个填充path来使用puppet apply :
site.pp清单通常位于/etc/puppet/manifests/site.pp ,可能只是一个类的列表,包括:
include module1::class, module2::class
然后你可以运行puppet apply --modulepath=/foo/modules site.pp ,甚至只需要puppet apply --modulepath=/foo/modules -e "include module1::class" 。