ruby – 在Chef中递归应用所有者/组
发布时间:2020-12-17 02:41:06 所属栏目:百科 来源:网络整理
导读:我在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 sour
我在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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |