Ruby 厨师食谱的问题
对不起,我的英语不好 这是一个./recipes/default.rbRuby 厨师食谱的问题,ruby,arrays,attributes,chef-infra,Ruby,Arrays,Attributes,Chef Infra,对不起,我的英语不好 这是一个./recipes/default.rb node['client-name'].each do |crontab| item = data_bag_item('bag_name', "#{crontab}") node.default[:client_timezone] = "#{item['timezone']}" node.default[:client_name] = "#{crontab}" template "c
node['client-name'].each do |crontab|
item = data_bag_item('bag_name', "#{crontab}")
node.default[:client_timezone] = "#{item['timezone']}"
node.default[:client_name] = "#{crontab}"
template "crontab" do
path "/etc/cron.d/#{deploy}"
source "default.erb"
owner "root"
group "root"
mode "0644"
end
end
./attributes/default.rb如下所示:
default['version'] = "1.0.0"
default['client-name'] = ['company_1','company_2']
30 04 * * * java -Duser.timezone=<%= node[:timezone] %> -jar /var/www/app-<%= node[:version] %>.jar /var/www/<%= node[:client_name] %>/config/spring/job.xml
node['client-name'].each do |client_name|
item = data_bag_item('bag_name', "#{client_name}")
template "crontab" do
path "/etc/cron.d/#{deploy}"
source "default.erb"
owner "root"
group "root"
mode "0644"
variables ({
:client_name => item['client_name'], # Don't you have this already?
:client_timezone => item['client_timezone']
})
end
end
30 04 * * * java -Duser.timezone=<%= @client_timezone %> -jar /var/www/app-<%= node[:version] %>.jar /var/www/<%= @client_name %>/config/spring/job.xml
模板/crontab.erb
如下所示:
default['version'] = "1.0.0"
default['client-name'] = ['company_1','company_2']
30 04 * * * java -Duser.timezone=<%= node[:timezone] %> -jar /var/www/app-<%= node[:version] %>.jar /var/www/<%= node[:client_name] %>/config/spring/job.xml
node['client-name'].each do |client_name|
item = data_bag_item('bag_name', "#{client_name}")
template "crontab" do
path "/etc/cron.d/#{deploy}"
source "default.erb"
owner "root"
group "root"
mode "0644"
variables ({
:client_name => item['client_name'], # Don't you have this already?
:client_timezone => item['client_timezone']
})
end
end
30 04 * * * java -Duser.timezone=<%= @client_timezone %> -jar /var/www/app-<%= node[:version] %>.jar /var/www/<%= @client_name %>/config/spring/job.xml
30 04***java-Duser.timezone=-jar/var/www/app-.jar/var/www//config/spring/job.xml
我的配方将两个类似的crontab文件(company_1和company_2)放入/etc/cron.d/,但仅用于最后一个属性的值(company_2)。您能告诉我,我哪里错了吗?您需要使用
模板
资源的变量部分来明确分配客户端名称
和时区
。配方可能如下所示:
default['version'] = "1.0.0"
default['client-name'] = ['company_1','company_2']
30 04 * * * java -Duser.timezone=<%= node[:timezone] %> -jar /var/www/app-<%= node[:version] %>.jar /var/www/<%= node[:client_name] %>/config/spring/job.xml
node['client-name'].each do |client_name|
item = data_bag_item('bag_name', "#{client_name}")
template "crontab" do
path "/etc/cron.d/#{deploy}"
source "default.erb"
owner "root"
group "root"
mode "0644"
variables ({
:client_name => item['client_name'], # Don't you have this already?
:client_timezone => item['client_timezone']
})
end
end
30 04 * * * java -Duser.timezone=<%= @client_timezone %> -jar /var/www/app-<%= node[:version] %>.jar /var/www/<%= @client_name %>/config/spring/job.xml
您的crontab.erb
应该如下所示:
default['version'] = "1.0.0"
default['client-name'] = ['company_1','company_2']
30 04 * * * java -Duser.timezone=<%= node[:timezone] %> -jar /var/www/app-<%= node[:version] %>.jar /var/www/<%= node[:client_name] %>/config/spring/job.xml
node['client-name'].each do |client_name|
item = data_bag_item('bag_name', "#{client_name}")
template "crontab" do
path "/etc/cron.d/#{deploy}"
source "default.erb"
owner "root"
group "root"
mode "0644"
variables ({
:client_name => item['client_name'], # Don't you have this already?
:client_timezone => item['client_timezone']
})
end
end
30 04 * * * java -Duser.timezone=<%= @client_timezone %> -jar /var/www/app-<%= node[:version] %>.jar /var/www/<%= @client_name %>/config/spring/job.xml
30 04***java-Duser.timezone=-jar/var/www/app-.jar/var/www//config/spring/job.xml
以及crontab.erb
?30 04***java-Duser.timezone=-jar/var/www/app-.jar/var/www//config/spring/job.xmlThx,伙计,这正是我需要的。我对chef&ruby很陌生,所以我的问题可能有点迟钝。。