Ställ in en proxy-miljö vid en Puppet exec-nedladdning
Ange miljövärden på exec-resursen som kör Wget, med en vakt för den färdiga filen för nedladdningen.
Puppets exec-resurs har ett environment-attribut. Sätt proxyvärdena på resursen som anropar nedladdaren:
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'],
}
Exemplet förutsätter att Wget och mv finns på dessa sökvägar. En misslyckad överföring lämnar kvar det tillfälliga sökvägsnamnet; det slutliga sökvägsnamnet installeras först efter att Wget har lyckats. Därefter hoppar creates-vakten över senare körningar så länge den färdiga versionerade filen finns.
Miljömatrisen levererar värden när Puppet kör kommandot. En HTTP-post från HTTP-proxylistan kan leverera proxy-URL:en för en tillåten nedladdning av en offentlig artefakt när Wget saknar konfigurerade eller sparade proxyuppgifter. En export som utförs av en annan exec-resurs gäller bara i den andra processen och dess barn. Att ordna två resurser gör inte den förstas skalmiljö bestående i den andra.
Behåll den här resursens miljö tillsammans med resursen. Andra Puppet-åtgärder kan använda sina egna konfigurerade rutter utan att ändra Wgets startfil för hela maskinen.