Puppets exec-ressource har en environment-attribut. Sæt proxyværdierne på den ressource, der kalder downloaderen:

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

Eksemplet forudsætter Wget og mv på disse stier. En mislykket overførsel efterlader det midlertidige stinavn; det endelige stinavn installeres først, når Wget er lykkedes. Derefter springer creates-vagten senere kørsler over, så længe den færdige versionsfil findes.

Miljøarrayet leverer værdier, når Puppet kører denne kommando. En HTTP-post fra HTTP-proxylisten kan levere proxy-URL'en til en tilladt download af et offentligt artefakt, når Wget ikke har konfigurerede eller gemte proxyoplysninger. En eksport udført af en anden exec-ressource gælder kun i den anden proces og dens underprocesser. At ordne to ressourcer gør ikke den førstes shell-miljø vedvarende i den anden.

Hold denne ressources miljø sammen med ressourcen. Andre Puppet-handlinger kan bruge deres egne konfigurerede ruter uden at ændre Wgets startfil for hele maskinen.

Relaterede artikler