previous = Chef::Config[:http_proxy]
Chef::Config[:http_proxy] = 'http://proxy.example.net:8080'

remote_file '/var/tmp/package.zip' do
  source 'https://downloads.example.net/package.zip'
end

Chef::Config[:http_proxy] = previous

Wala na ang pansamantalang halaga bago pa mag-download ng anuman ang karaniwang resource na ito:

  1. Compile: iniimbak ng Ruby sa pinakamataas na antas ang halaga, itinatakda ang pansamantalang proxy, idinedeklara ang remote_file at ibinabalik ang halaga.
  2. Converge: isinasagawa ng resource ang aksyon nito gamit ang configuration na makukuha noon.

Iniiwasan ng matatag na proxy ng kliyente na may angkop na panloob na mga pagbubukod ang problemang ito sa timing. Gamitin ang dokumentadong sintaks ng pagbubukod ng naka-install na kliyente sa halip na ipagpalagay ang mga panuntunan ng wildcard ng shell. Para sa malayang pag-download ng pampublikong artefact sa isang pinahihintulutang pampublikong ruta, ang isang entry mula sa listahan ng HTTP proxy ay makapagbibigay ng matatag na HTTP endpoint kapag walang naka-configure o naitagong account ng proxy ang kliyente ng Chef. Panatilihin ang panloob na mga pagbubukod nito; hindi binabago ng pagpili ng address kung kailan ito ginagamit ng compile at converge.

Kung kailangan ng isang operasyon ng espesyal na ruta, ilagay ang pagbabago ng configuration at pagpapatupad nito sa parehong saklaw. Ang isang custom na resource na may angkop na gawi ng unified-mode ay isang opsyon, ngunit nananatiling pandaigdigan ang Chef::Config. Ibalik ito kapag nabigo ang pag-download at kapag ang file ay up-to-date na. Ang notification ng update ay hindi tumatakbo nang walang kundisyon, at ang susunod na resource sa paglilinis ay maaaring hindi tumakbo kailanman pagkatapos ng isang exception.

Ang property na lazy source ay nagpapaliban sa pagsusuri ng property na iyon, hindi sa mga pagtatalaga ng Ruby sa paligid nito. Ang pagpapatupad ng resource sa oras ng compile ay isang hiwalay na sinusuportahang pagpipilian kapag doon nararapat ang pag-download; binabago rin nito ang timing ng mga dependency at notification. Pumili batay sa kung kailan ginagamit ng kliyente ng HTTP ang setting ng proxy nito, sa halip na asahan na magbibigay ng paghihiwalay ang pagkakasunod-sunod ng deklarasyon.

Kaugnay na mga artikulo