De exec-resource van Puppet heeft een environment-attribuut. Zet de proxywaarden op de resource die de downloader aanroept:

file { '/var/cache/myapp':
  ensure => directory,
}

exec { 'fetch-artifact':
  provider    => shell,
  command     => '/usr/bin/wget --tries=1 --timeout=20 -O /var/cache/myapp/artifact.part https://downloads.example.net/artifact-v1.bin && /usr/bin/mv /var/cache/myapp/artifact.part /var/cache/myapp/artifact-v1.bin',
  environment => [
    'http_proxy=http://proxy.example.net:8080',
    'https_proxy=http://proxy.example.net:8080',
  ],
  creates     => '/var/cache/myapp/artifact-v1.bin',
  require     => File['/var/cache/myapp'],
}

Het voorbeeld gaat ervan uit dat Wget en mv op die paden staan. Een mislukte overdracht laat de tijdelijke padnaam achter; de definitieve padnaam wordt pas geïnstalleerd nadat Wget is geslaagd. Daarna slaat de creates-wacht latere uitvoeringen over zolang het voltooide geversioneerde bestand bestaat.

De omgevingsarray levert waarden wanneer Puppet dit commando uitvoert. Een HTTP-vermelding uit de HTTP-proxylijst kan de proxy-URL leveren voor een toegestane download van een openbaar artefact wanneer Wget geen geconfigureerde of bewaarde proxyreferenties heeft. Een export door een andere exec-resource geldt alleen in dat andere proces en zijn afstammelingen. Twee resources ordenen maakt de shell-omgeving van de eerste niet blijvend in de tweede.

Houd de omgeving van deze resource bij de resource. Andere Puppet-bewerkingen kunnen hun eigen geconfigureerde routes gebruiken zonder het machinebrede Wget-startbestand te wijzigen.

Gerelateerde artikelen