Mga setting ng proxy ng Chef sa mga yugto ng compile at converge
Isaalang-alang ang pag-compile ng recipe at pagpapatupad ng resource kapag binabago ang isang pandaigdigang proxy para sa isang aksyong remote_file.
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] = previousWala na ang pansamantalang halaga bago pa mag-download ng anuman ang karaniwang resource na ito:
- Compile: iniimbak ng Ruby sa pinakamataas na antas ang halaga, itinatakda ang pansamantalang proxy, idinedeklara ang
remote_fileat ibinabalik ang halaga. - 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.