我似乎无法让厨师在两个目录之间创建一个符号链接.我想在两个不同的目录之间创建一个符号链接.(/var/log/nginx至/data/logs/nginx).
directory node[:nginx][:log_dir] do
owner 'root'
mode 00777
action :create
end
directory node[:nginx][:integration][:log_dir] do
owner 'root'
mode 00777
action :create
end
link node[:nginx][:integration][:log_dir] do
to node[:nginx][:log_dir]
end
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Errno::EISDIR
Is a directory - var/log/nginx
link("var/log/nginx") do
provider Chef::Provider::Link
action :create
retries 0
retry_delay 2
guard_interpreter :default
to "/data/logs/nginx/"
link_type :symbolic
target_file "var/log/nginx"
cookbook_name :nginx_integration
recipe_name "default"
end
Run Code Online (Sandbox Code Playgroud) 给定以下变量divisor_array,low,high定义一个方法
divisor_array,则打印数字+"fizzy"测试值: generally_fizzy([2,3],1,7)
我最初的解决方案
def generally_fizzy(divisor_array, low, high)
divisors = Hash[*divisor_array]
low.upto(high) do |i|
divisors.each_pair do |k,v|
if((i % k == 0) && (i % v == 0))
puts "#{i} reallyfizzy"
elsif ((i % k == 0) || (i % v == 0))
puts "#{i} fizzy"
else
puts i
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
这个解决方案通过了给定的测试,但是当divisor_array大小从2个值增加到3个以上时,它会打印出重复的内容.除此之外,代码不是很优雅.
寻找可以处理divisor_array尺寸变化的工作替代方案.