Puppets exec-ressurs har et environment-attributt. Sett proxyverdiene på ressursen som kaller nedlasteren:

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'],
}

Eksempelet forutsetter at Wget og mv ligger på disse stiene. En mislykket overføring etterlater det midlertidige stinavnet; det endelige stinavnet installeres først etter at Wget har lykkes. Deretter hopper creates-vakten over senere kjøringer så lenge den ferdige versjonerte filen finnes.

Miljømatrisen leverer verdier når Puppet kjører denne kommandoen. En HTTP-oppføring fra HTTP-proxylisten kan levere proxy-URL-en for en tillatt nedlasting av et offentlig artefakt når Wget ikke har konfigurerte eller lagrede proxy-legitimasjoner. En eksport utført av en annen exec-ressurs gjelder bare i den andre prosessen og dens etterkommere. Å ordne to ressurser gjør ikke den førstes skallmiljø varig i den andre.

Hold miljøet til denne ressursen sammen med ressursen. Andre Puppet-operasjoner kan bruke sine egne konfigurerte ruter uten å endre Wgets oppstartsfil for hele maskinen.

Relaterte artikler