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

Az ideiglenes érték már eltűnt, mielőtt ez a hétköznapi erőforrás bármit letöltene:

  1. Compile: a legfelső szintű Ruby elmenti az értéket, beállítja az ideiglenes proxyt, deklarálja a remote_file elemet, majd visszaállítja az értéket.
  2. Converge: az erőforrás a műveletét az akkor elérhető konfigurációval hajtja végre.

A megfelelő belső kizárásokkal rendelkező stabil kliensproxy elkerüli ezt az időzítési problémát. A telepített kliens dokumentált kizárási szintaxisát használja, ne feltételezzen shell wildcard-szabályokat. Egy engedélyezett nyilvános útvonalon végzett független nyilvános letöltéshez egy HTTP-proxylista bejegyzése biztosíthatja a stabil HTTP végpontot, ha a Chef kliensnek nincs beállított vagy megőrzött proxyfiókja. Tartsa meg a belső kizárásait; a cím kiválasztása nem változtatja meg, mikor fogyasztja el a compile és a converge.

Ha egy műveletnek különleges útvonalra van szüksége, tegye annak konfigurációmódosítását és végrehajtását ugyanabba a hatókörbe. A megfelelő unified-mode viselkedésű egyéni erőforrás egy lehetőség, de a Chef::Config globális marad. Állítsa vissza, amikor a letöltés meghiúsul, és amikor a fájl már naprakész. A frissítési értesítés nem feltétel nélkül fut, és egy későbbi tisztító erőforrás kivétel után soha nem futhat.

A lazy source tulajdonság az adott tulajdonság kiértékelését halasztja, nem a környező Ruby-hozzárendeléseket. Az erőforrások compile idejű végrehajtása külön támogatott választás, amikor a letöltés oda tartozik; a függőségek és értesítések időzítését is megváltoztatja. Aszerint válasszon, mikor fogyasztja el a HTTP kliens a proxybeállítását, ahelyett hogy a deklarációs sorrendtől várna elkülönítést.

Kapcsolódó cikkek