コピーされる cookbook_file の場所をユーザーが指定できる一般的なクックブックをどのように作成しますか? このファイルはオーバーライド可能な属性であると思います。
例:ユーザーがSSLファイルの場所を指定できるnginxクックブックを作成して、これらのファイルをサーバーの適切なディレクトリにコピーできるようにします。
コピーされる cookbook_file の場所をユーザーが指定できる一般的なクックブックをどのように作成しますか? このファイルはオーバーライド可能な属性であると思います。
例:ユーザーがSSLファイルの場所を指定できるnginxクックブックを作成して、これらのファイルをサーバーの適切なディレクトリにコピーできるようにします。
リソース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クライアントを実行します:
chef-client --json-attributes attributes.json
編集:
ssh_files が実際に他のクックブックにある場合は、cookbook_file を使用できますが、次のようにクックブック属性を指定する必要があります。
cookbook_file filename do
[...]
cookbook 'cookbook_name_where_to_look'
end