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 najvišoj razini sprema vrijednost, postavlja privremeni proxy, deklarira
remote_filei vraća vrijednost. - 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.