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

Привремената вредност исчезнува пред овој обичен ресурс да преземе нешто:

  1. Compile: Ruby на највисоко ниво ја зачувува вредноста, го поставува привременото прокси, го декларира remote_file и ја враќа вредноста.
  2. Converge: ресурсот ја извршува својата акција со конфигурацијата достапна тогаш.

Стабилно клиентско прокси со соодветни внатрешни исклучоци ја избегнува оваа временска задача. Користете ја документираната синтакса за исклучоци на инсталираниот клиент наместо да претпоставувате правила за shell wildcard. За независно преземање на јавен артефакт по дозволена јавна рута, запис од список на HTTP прокси може да обезбеди стабилна HTTP крајна точка кога клиентот Chef нема конфигурирана или задржана прокси сметка. Задржете ги неговите внатрешни исклучоци; изборот на адреса не менува кога compile и converge го трошат.

Ако една операција бара посебна рута, ставете ја нејзината промена на конфигурацијата и извршувањето во истиот опсег. Приспособен ресурс со соодветно однесување unified-mode е една опција, но Chef::Config останува глобален. Вратете го кога преземањето ќе не успее и кога датотеката е веќе ажурна. Известувањето за ажурирање не се извршува безусловно, а подоцнежен ресурс за чистење може никогаш да не се изврши по исклучок.

Својството lazy source го одложува оценувањето на тоа својство, а не околните доделувања во Ruby. Извршувањето ресурси во време на compile е одделен поддржан избор кога преземањето тогаш и припаѓа; тоа исто така го менува времето на зависности и известувања. Изберете според тоа кога HTTP клиентот ја троши својата прокси поставка, наместо да очекувате редоследот на декларации да даде изолација.

Поврзани статии