Viv*_*vek 0 unix bash chef-infra chef-recipe
我试图在chef中运行一个循环数组(循环包含一个bash命令).有人对此有任何想法吗?
symlink_db = data_bag_item(“my”_db,”my”_db)
source = symlink_db[“sourceFile”]
instances = symlink_db["Instances"].split(',') <---Instances is a comma separated string in Databag
bash "create_link" do
puts "1: #{instances}" <-------Puts all instances correctly
instances.each do |instance|
puts "2: #{instance}" <------ This prints each instance in loop correctly
code <<-EOH
echo "ln -fs #{source} #{instance}"; <----- This is printed only for last instance in the loop
EOH
end
end
Run Code Online (Sandbox Code Playgroud)
感谢如果有人能尽快帮助.....谢谢
你需要循环中的bash资源:
instances.each do |instance|
bash "create_link-#{instance}" do
code <<-EOH
echo "ln -fs #{source} #{instance}"
EOH
end
end
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这不是惯用厨师.你应该简单地使用这样的link资源:
instances.each do |instance|
link instance do
to source
end
end
Run Code Online (Sandbox Code Playgroud)
这种方法的一个优点是它使您的配方跨平台.它的可读性也更高.
| 归档时间: |
|
| 查看次数: |
857 次 |
| 最近记录: |