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

Väliaikainen arvo on kadonnut ennen kuin tämä tavallinen resurssi lataa mitään:

  1. Compile: ylätason Ruby tallentaa arvon, asettaa väliaikaisen välityspalvelimen, ilmoittaa remote_file ja palauttaa arvon.
  2. Converge: resurssi suorittaa toimintonsa silloin käytettävissä olevalla kokoonpanolla.

Sopivilla sisäisillä poikkeuksilla varustettu vakaa asiakasvälityspalvelin välttää tämän ajoitusongelman. Käytä asennetun asiakkaan dokumentoitua poikkeusyntaksia sen sijaan, että olettaisit kuoren wildcard-sääntöjä. Sallitulla julkisella reitillä tapahtuvaan itsenäiseen julkisen artefaktin lataukseen HTTP-välityspalvelinluettelon merkintä voi tarjota vakaan HTTP-päätepisteen, kun Chef-asiakkaalla ei ole määritettyä tai säilytettyä välityspalvelintiliä. Säilytä sen sisäiset poikkeukset; osoitteen valinta ei muuta sitä, milloin compile ja converge kuluttavat sen.

Jos yksi toiminto tarvitsee erityisen reitin, sijoita sen kokoonpanomuutos ja suoritus samaan laajuuteen. Mukautettu resurssi, jolla on asianmukainen unified-mode-käyttäytyminen, on yksi vaihtoehto, mutta Chef::Config pysyy yleisenä. Palauta se, kun lataus epäonnistuu ja kun tiedosto on jo ajan tasalla. Päivitysilmoitus ei suoritu ehdoitta, ja myöhempi siivousresurssi ei ehkä koskaan suoritu poikkeuksen jälkeen.

Lazy source -ominaisuus lykkää kyseisen ominaisuuden arviointia, ei ympäröiviä Ruby-sijoituksia. Resurssien suorittaminen compile-aikana on erillinen tuettu vaihtoehto, kun lataus kuuluu juuri silloin; se muuttaa myös riippuvuuksien ja ilmoitusten ajoitusta. Valitse sen mukaan, milloin HTTP-asiakas kuluttaa välityspalvelinasetustaan, sen sijaan että odottaisit ilmoitusjärjestyksen tarjoavan eristystä.

Aiheeseen liittyvät artikkelit