1

このリリースによると: http://docs.opscode.com/release/11-6/release_notes.html#resource-remote-file-attributes

Remote_file プロバイダーには、属性「headers」があります。

次のように使用したいと思います。

remote_file "foo" do
   source "http://someurl"
   headers({"Cookies" => "Some cookie"})
end

ただし、これは想定どおりに機能していません。つまり、ヘッダーが使用されていないと思います。それは正しいシンタックスですか?

4

2 に答える 2

1

これは、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 をダウンロードできます。

于 2013-07-25T06:21:15.010 に答える