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 vrhu nivoa čuva vrijednost, postavlja privremeni proxy, deklarira remote_file i vraća vrijednost.
  2. Converge: resurs izvršava 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 liste HTTP proxyja može osigurati stabilnu HTTP krajnju točku kada Chef klijent nema konfiguriran ni zadržan proxy račun. Zadržite njegove interne izuzetke; odabir adrese ne mijenja kada je compile i converge konzumiraju.

Ako jedna operacija treba posebnu rutu, stavite promjenu konfiguracije i izvršavanje u isti obim. 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 izuzetka.

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

Povezani članci