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

Vlera e përkohshme ka humbur përpara se ky burim i zakonshëm të shkarkojë çdo gjë:

  1. Compile: Ruby i nivelit të sipërm ruan vlerën, vendos proxy-n e përkohshme, deklaron remote_file dhe rikthen vlerën.
  2. Converge: burimi kryen veprimin e tij me konfigurimin e disponueshëm në atë moment.

Një proxy klienti e qëndrueshme me përjashtime të brendshme të përshtatshme shmang këtë problem kohor. Përdorni sintaksën e dokumentuar të përjashtimeve të klientit të instaluar në vend që të supozoni rregulla wildcard të shell-it. Për një shkarkim të pavarur të një artefakti publik në një rrugë publike të lejuar, një zë nga lista e proxy-ve HTTP mund të sigurojë pikën fundore HTTP të qëndrueshme kur klienti Chef nuk ka asnjë llogari proxy të konfiguruar ose të mbajtur. Mbajini përjashtimet e brendshme; zgjedhja e një adrese nuk ndryshon kur compile dhe converge e konsumojnë atë.

Nëse një operacion kërkon një rrugë të veçantë, vendosni ndryshimin e konfigurimit dhe ekzekutimin e tij në të njëjtin fushë. Një burim i personalizuar me sjellje të përshtatshme unified-mode është një opsion, por Chef::Config mbetet global. Rikthejeni kur shkarkimi dështon dhe kur skedari është tashmë i përditësuar. Një njoftim përditësimi nuk ekzekutohet pa kushte, dhe një burim pastrimi i mëvonshëm mund të mos ekzekutohet kurrë pas një përjashtimi.

Një veti lazy source shtyn vlerësimin e asaj vetie, jo caktimet Ruby përreth. Ekzekutimi i burimeve në kohën compile është një zgjedhje më vete e mbështetur kur shkarkimi i përket pikërisht atij momenti; ndryshon gjithashtu kohën e varësive dhe njoftimeve. Zgjidhni sipas momentit kur klienti HTTP konsumon cilësimin e tij të proxy-t, në vend që të prisni që rendi i deklarimeve të japë izolim.

Artikuj të ngjashëm