您如何创建允许用户指定将被复制的 cookbook_file 的位置的通用说明书?我想这个文件是一个可覆盖的属性。
例如:创建一个 nginx 食谱,用户可以在其中指定 SSL 文件的位置,以便它可以将这些文件复制到服务器的正确目录中。
您如何创建允许用户指定将被复制的 cookbook_file 的位置的通用说明书?我想这个文件是一个可覆盖的属性。
例如:创建一个 nginx 食谱,用户可以在其中指定 SSL 文件的位置,以便它可以将这些文件复制到服务器的正确目录中。
files
如果您希望通过cookbook_file
资源访问文件,则该文件应位于说明书的子目录中。如果要从其他地方获取文件,则需要使用remote_file
. (不要node[:nginx][:ssl_file_location]
在你的食谱中设置。)
cookbook_file filename do
[...]
only_if { node[:nginx][:ssl_file_location].nil? }
end
remote_file ::File.join( node[:nginx][:ssl_file_location].to_s, filename ) do
[...]
not_if { node[:nginx][:ssl_file_location].nil? }
end
当需要设置 ssl_file_location 时,他可以创建一个 attributes.json 文件:
{ "nginx": { "ssl_file_location" : "[my location]" } }
并运行厨师客户端:
chef-client --json-attributes attributes.json
编辑:
如果 ssh_files 实际上在其他一些说明书中,那么您可以使用说明书文件,但您必须提供如下说明书属性:
cookbook_file filename do
[...]
cookbook 'cookbook_name_where_to_look'
end