Chef proxy postavke kroz faze compile i converge
Uzmite u obzir kompajliranje recepta i izvršavanje resursa kada mijenjate globalni proxy za jednu radnju 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] = previousPrivremena vrijednost nestaje prije nego što ovaj obični resurs išta preuzme:
- Compile: Ruby na vrhu nivoa čuva vrijednost, postavlja privremeni proxy, deklarira
remote_filei vraća vrijednost. - 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.