次のパペット テンプレート ファイル solr.json.erb があります。
{
"servers" : [ {
"port" : "<%= jmx_port %>",
"host" : "localhost",
"queries" : [
<% @markets.each do |market| -%>
{
"outputWriters" : [ {
"@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter",
} ],
"obj" : "solr/market_<%= market %>:type=queryResultCache,id=org.apache.solr.search.LRUCache",
"attr" : [ "hits","hitratio"]
},
<% end -%>
],
"numQueryThreads" : 2
} ]
}
これをパペットで実行する前に、テンプレートをいくつかのテストパラメーターに適用した結果をテストしたいと思います。
どうやってやるの?
前に、このようなスクリプトで試してみました my_script.ruby
require 'erb'
require 'ostruct'
namespace = OpenStruct.new(:jmx_port => 9200, :markets=> ['CH', 'FR'])
template = File.open("solr.json.erb", "rb").read;
puts ERB.new(template).result(namespace.instance_eval { binding })
instance variables
しかし、OpenStructには がなく、使用できないため、うまくいきませんでし@markets
た。
ドキュメントには、次のコマンドで構文を確認できることが記載されています: http://docs.puppetlabs.com/guides/templating.html
erb -P -x -T '-' mytemplate.erb | ruby -c
しかし、それは私が求めていることではありません。テンプレートにいくつかのテスト パラメーター (jmx_port=9200、markets=['CH', 'FR']) を適用した結果を取得するよう求めています。
どうやってやるの?