Opsæt et proxy-miljø på en Puppet exec-download
Angiv miljøværdier på den exec-ressource, der kører Wget, med en vagt for den færdige fil til downloadet.
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.