これは、Chef10 と Chef11 で機能します。実際、この機能は文書化されていません。少なくとも、Cookie を渡す方法を見つけるために、Chef のソース コードを掘り下げる必要がありました。リモート ファイルはこれをサポートしていません。しかし、「隠された」Chef メカニズムを使用して、特定のドメインとポートへのすべてのリクエストに Cookie をセットアップすることができます。
ruby_block "Prepare cookies for download from http://someurl" do
block do
Chef::REST::CookieJar.instance["someurl:80"] = "Some cookie"
end
end
remote_file "foo" do
source "http://someurl"
end
["someurl:80"] は、ポートを含むドメイン全体にする必要があります。例えば、
Chef::REST::CookieJar.instance["download.oracle.com:80"] = Chef::REST::CookieJar.instance["edelivery.oracle.com:443"] = "oraclelicense=accept-securebackup-cookie"
これを使用して、使用許諾契約に手動で同意することなく、Oracle サイトから Java をダウンロードできます。