我正在尝试创建一个配方,我会迭代一组值,每次迭代时我都会覆盖一个用于输出模板的属性。
所以,对于这段代码......
count = 0
node['versions'].each do |a_version|
...
node.override['jboss']['PORT_OFFSET'] = (PORT_OFFSET.to_i + count)
template "#{JBOSS_DIRECTORY}standalone.xml" do
source 'standalone.xml.erb'
end
count += 100
end
...在运行之后我想让每个standalone.xml包含一个比以前版本多100的port_offset。
所以他们看起来像这样..
jboss.socket.binding.port-offset:8000}">
jboss.socket.binding.port-offset:8100}">
jboss.socket.binding.port-offset:8200}">
...等
但目前它们都是相同的数字。
关于如何做到这一点的任何想法?
答案 0 :(得分:3)
回答我自己的问题:
我这样做是为了让它发挥作用。我将变量传递给模板,其中计数在每次迭代时递增。
template "#{JBOSS_DIRECTORY}standalone.xml" do
source 'standalone.xml.erb'
variables(
:port_offset => (node['jboss']['PORT_OFFSET'].to_i + count)
)
end
并在模板(standalone.xml.erb)中添加了这个...
port-offset="${jboss.socket.binding.port-offset:<%= @port_offset %>}">