我需要在配置机器的另一个目录下的目录下配置几个文件。
因此,我需要位于files/scripts/*.painless
下的主厨库中的一些文件位于配置机器的文件夹(#{es_config_r.path_conf}/scripts/
)上。
有没有办法做到这一点,或者我需要逐个提供?
如果我解释得那么好,我不会......
答案 0 :(得分:2)
要从您的食谱中放置files/
文件夹中的所有文件,您可以使用remote_directory
资源,如下所示:
remote_directory "#{es_config_r.path_conf}/scripts/"
应该已经完成这项工作,因为你在两边都使用了文件夹名scripts/
。
为了使示例更加清晰,您可以将无痛脚本放在files/scripts/painless/
中。可以按如下方式配置此文件夹的内容:
remote_directory "#{es_config_r.path_conf}/scripts/" do
source "scripts/painless"
end
答案 1 :(得分:-1)
您可以使用资源cookbook_file部署食谱中包含的文件。
使用简单的循环,您可以部署该目录中的所有文件,例如:
%w(foo bar zaz).each do |script|
cookbook_file "/path/to/#{script}" do
source "scripts/#{script}"
owner 'MrBean'
group 'ITV'
mode '0754'
end
end
当然,假设您在目录your_cookbook/files/scripts/
下的食谱中有脚本。
其他更优雅的选项是将脚本文件列表保留为您的食谱的属性,因此您可以在每台计算机的基础上部署dinamically脚本。 (例如,不保留与在mysql中管理httpd服务器相关的脚本)