Puppet 在木偶清单中设置路径变量

Puppet 在木偶清单中设置路径变量,puppet,Puppet,我有一个构建脚本,我想使用木偶清单。ant构建脚本需要设置以下环境变量才能正常工作。在线阅读puppet没有很好的方法来设置path的变量。任何建议 export JAVA_HOME=/usr/java/jdk1.6.0_26 export CATALINA_HOME=/usr/share/apache-tomcat-6.0.37 export SERVICEMIX_HOME=/opt/apache-servicemix-3.3.2 export ANT_HOME=/opt/opt/apache

我有一个构建脚本,我想使用木偶清单。ant构建脚本需要设置以下环境变量才能正常工作。在线阅读puppet没有很好的方法来设置path的变量。任何建议

export JAVA_HOME=/usr/java/jdk1.6.0_26
export CATALINA_HOME=/usr/share/apache-tomcat-6.0.37
export SERVICEMIX_HOME=/opt/apache-servicemix-3.3.2
export ANT_HOME=/opt/opt/apache-ant-1.8.4
PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$SERVICEMIX_HOME/bin:$ANT_HOME/bin:$PATH
一旦这些设置完成,我就可以使用ant all或其他一些构建脚本调用puppet中的EXEC

任何指导都很好。

看看(注意“环境”)
像这样的方法应该会奏效:

exec { 'my_nifty_command.sh':
  environment => [JAVA_HOME=/usr/java/jdk1.6.0_26, CATALINA_HOME=/usr/share/apache-tomcat-6.0.37, SERVICEMIX_HOME=/opt/apache-servicemix-3.3.2, ANT_HOME=/opt/opt/apache-ant-1.8.4 ],
  path        => "$JAVA_HOME/bin:$CATALINA_HOME/bin:$SERVICEMIX_HOME/bin:$ANT_HOME/bin:$PATH"
}
Hy

例如,尝试通过修改例如/etc/environment来持续设置环境变量

file { "/etc/environment":
    [...]
    content => inline_template("JAVA_HOME=/usr/java/jdk1.6.0_26\nCATALINA_HOME=/usr/share/apache-tomcat-6.0.37\nSERVICEMIX_HOME=/opt/apache-servicemix-3.3.2\nANT_HOME=/opt/opt/apache-ant-1.8.4\nPATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$SERVICEMIX_HOME/bin:$ANT_HOME/bin:$PATH"),
}
是的,这是一个非常难看的片段,但只是为了得到这个想法。这是基本方法。 我建议通过从hiera获取变量的内容(数据),将数据与伪代码分开

问候
ITL

此处的引号应颠倒使用。带求值变量的字符串需要双引号,而不带求值变量的字符串应该使用单引号(以跳过求值检查)——@bennylope谢谢,我修复了引号。