无法在puppet工作中获得外部节点分类器--bash和java

时间:2013-03-19 11:31:03

标签: java bash puppet

我有以下脚本,我调用一个将YAML输出写入Strandard输出流的java程序,并且回显(简单)。

#!/bin/bash
echo `/usr/lib/jvm/jre/bin/java -jar /etc/puppet/enc/enc.jar $1`

我在文件中有上述脚本

/etc/puppet/enc/javaEnc.sh
当我执行此提供节点名称作为参数时,我得到以下输出。

---
classes:
  class1:
  class2:

问题是,在代理节点上,我收到错误消息

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find node 'node-agent-1'; cannot compile
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

我发现脚本没有执行(或者我的java程序没有被调用,不知道为什么) - 在我的java程序中,除了执行System.out.print之外,我还将输出写入文件

我有另一个脚本,我读取文件(data.yaml),其中包含与我提到的输出相同的数据,并通过以下脚本将其写入输出流。

#!/bin/bash
cat "/etc/puppet/enc/data.yaml"

当针对external_nodes提到这个脚本时,它工作正常,木偶代理自行配置。请问我在哪里弄错了。 java程序实际上查询一些外部资源并对类进行分类并生成输出 - 完成此操作大约需要10秒。这可能是个问题吗?我见过ruby和python解决方案 - 无法让它们工作。我希望最好用Java完成。

在我的puppet.conf文件中,我有以下内容。

[master]
node_terminus = exec
external_nodes = /etc/puppet/enc/javaEnc.sh

0 个答案:

没有答案