Chef infra Chef cookbook-将完整目录从cookbook中的文件/默认位置复制到新位置
我是厨师的初学者。任何人都可以告诉我是否有办法将cookbook的Chef infra Chef cookbook-将完整目录从cookbook中的文件/默认位置复制到新位置,chef-infra,Chef Infra,我是厨师的初学者。任何人都可以告诉我是否有办法将cookbook的文件/default目录中的目录复制到其他位置 例如,我有一个目录结构,在files/目录中有文件a.txt和b.txt,如下cookbook\u name/files/default/folder name/[a.txt,b.txt]。我希望这两个文件都是一个位置/home/user/work/somelocation/foldername/[a.txt,b.txt] 我尝试了以下资源: cookbook\u文件'/home/u
文件/default
目录中的目录复制到其他位置
例如,我有一个目录结构,在files/
目录中有文件a.txt
和b.txt
,如下cookbook\u name/files/default/folder name/[a.txt,b.txt]
。我希望这两个文件都是一个位置/home/user/work/somelocation/foldername/[a.txt,b.txt]
我尝试了以下资源:
cookbook\u文件'/home/user/work/somelocation/'do
源['folder-name']
模式“0644”
行动:创建
结束
及
我知道通过循环在任意目录之间复制文件的其他方法,但我很想知道是否有更优雅的方法来处理目录,类似于cookbook_文件如何处理cookbook的
files/default
目录中标准文件夹中的文件。不太可能,因为cookbook_文件
使用校验和来比较现有文件和新文件,因此,每个人都需要一个独特的cookbook\u文件资源。没有“好/干净”的方法来复制cookbook中包含的所有文件
为了创建多个文件,您可以应用简单的ruby逻辑来循环这些文件:
['a.txt','b.txt'].每个do文件|
cookbook_file”/home/user/work/somelocation/#{file}do
源“文件夹名/#{file}”
模式“0644”
结束
结束
这将创建多个cookbook\u文件
资源(正在讨论的内容)
另外,files/default/
中的default/
部分是可选的,因为有两个Chef版本。远程目录允许您将整个目录复制到您选择的位置。例如:
remote_directory "/etc/some_target_directory" do
source 'local_directory' # <-- this is your directory in files/default/local_directory
files_owner 'root'
files_group 'root'
files_mode '0750'
action :create
recursive true
end
remote\u directory”/etc/some\u target\u directory“do
source'local_directory'#我面临着一个类似的问题,我几乎可以找到一个解决方案,那就是在配方run_上下文中。cookbook_集合[]。file_filenames
是一个数组,其中包含/files
下所有文件的完整路径
例如,在我的配置中,对于如下目录:
files/
default/
foo.txt
bar.txt
baz/foo.txt
它返回一个目录,如
[
"/opt/kitchen/cache/cookbooks/cookbook/files/default/foo.txt",
"/opt/kitchen/cache/cookbooks/cookbook/files/default/bar.txt",
"/opt/kitchen/cache/cookbooks/cookbook/files/default/baz/foo.txt"
]
但是这对我来说不是很有用虽然源代码
接受一个数组,但您不能使用它来指定要复制的多个文件,而是阅读。有没有办法将文件/默认值
更改为类似文件/非默认值
的内容?是的,您可以使用文件/
下面的任意路径(default/
甚至可以省略,因为有两个版本)。还有更多。有没有办法将文件/default
更改为类似文件/not default
?
[
"/opt/kitchen/cache/cookbooks/cookbook/files/default/foo.txt",
"/opt/kitchen/cache/cookbooks/cookbook/files/default/bar.txt",
"/opt/kitchen/cache/cookbooks/cookbook/files/default/baz/foo.txt"
]