ruby – 在Chef中递归应用所有者组

ruby – 在Chef中递归应用所有者组,第1张

概述我在Chef中有一段ruby代码,以递归方式创建一些目录 # Deploy config files from files unless instance[:directories].nil? instance[:directories].each do |dir| unless File.directory?("#{dir[:source_dir]}") 我在Chef中有一段ruby代码,以递归方式创建一些目录

# Deploy config files from files  unless instance[:directorIEs].nil?    instance[:directorIEs].each do |dir|      unless file.directory?("#{dir[:source_dir]}")        remote_directory "#{dir[:path]}" do          source "#{dir[:source_dir]}"          owner "#{config[:owner]}"          group "#{config[:group]}"          recursive true          notifIEs :run,"execute[change permissions]",:immediately          notifIEs :restart,"service[#{instance[:name]}]"        end      end    end  end

根据规范,remote_directory资源仅将所有者/组权限应用于指定路径中的叶节点,但不应用于创建的中间节点.

我计划在创建路径时通知执行命令并递归地应用权限.如何传递参数(在本例中为#{dir [:path]})以执行如下命令.

execute "change permissions" do    command "chown -R #{config[:owner]}:#{config[:group]} #{path}"    user "root"    action :nothing  end
解决方法 你没有.将执行资源包含在远程目录资源中:

unless instance[:directorIEs].nil?    instance[:directorIEs].each do |dir|      unless file.directory?("#{dir[:source_dir]}")        path = dir[:path]        remote_directory path do          source dir[:source_dir]          owner config[:owner]          group config[:group]          recursive true          notifIEs :run,"execute[change-permission-#{path}]","service[#{instance[:name]}]"        end        execute "change-permission-#{path}" do          command "chown -R #{config[:owner]}:#{config[:group]} #{path}"          user "root"          action :nothing        end      end    end  end
总结

以上是内存溢出为你收集整理的ruby – 在Chef中递归应用所有者/组全部内容,希望文章能够帮你解决ruby – 在Chef中递归应用所有者/组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1282393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存