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

Privremena vrijednost nestaje prije nego što ovaj obični resurs išta preuzme:

  1. Compile: Ruby na najvišoj razini sprema vrijednost, postavlja privremeni proxy, deklarira remote_file i vraća vrijednost.
  2. Converge: resurs izvodi svoju radnju koristeći konfiguraciju dostupnu tada.

Stabilan klijentski proxy s odgovarajućim internim izuzecima izbjegava ovaj problem s vremenom. Koristite dokumentiranu sintaksu izuzetaka instaliranog klijenta umjesto pretpostavljanja pravila shell wildcarda. Za neovisno preuzimanje javnog artefakta na dopuštenoj javnoj ruti, unos s popisa HTTP proxyja može osigurati stabilnu HTTP završnu točku kada Chef klijent nema konfiguriran ni zadržan proxy račun. Zadržite njegove interne izuzetke; odabir adrese ne mijenja kada ga compile i converge troše.

Ako jedna operacija treba posebnu rutu, stavite promjenu konfiguracije i izvršavanje u isti obuhvat. Prilagođeni resurs s odgovarajućim ponašanjem unified-mode jedna je opcija, ali Chef::Config ostaje globalan. Vratite ga kada preuzimanje ne uspije i kada je datoteka već aktualna. Obavijest o ažuriranju ne pokreće se bezuvjetno, a kasniji resurs za čišćenje možda se nikada neće pokrenuti nakon iznimke.

Svojstvo lazy source odgađa procjenu tog svojstva, ne okolne Ruby dodjele. Izvršavanje resursa u vrijeme compile odvojen je podržan izbor kada preuzimanje tada i pripada; također mijenja vrijeme ovisnosti i obavijesti. Birajte prema tome kada HTTP klijent troši svoju proxy postavku, umjesto da očekujete da će redoslijed deklaracija pružiti izolaciju.

Povezani članci