Proxy-Umgebung für einen Puppet-exec-Download einrichten
Umgebungswerte für die exec-Ressource setzen, die Wget ausführt, mit einer Absicherung über die fertige Datei für den Download.
Die exec-Ressource von Puppet hat ein Attribut environment. Setzen Sie die Proxywerte an der Ressource, die den Downloader aufruft:
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'],
}
Das Beispiel setzt Wget und mv an diesen Pfaden voraus. Eine fehlgeschlagene Übertragung hinterlässt den temporären Pfadnamen; der endgültige Pfadname wird erst installiert, nachdem Wget erfolgreich war. Die creates-Absicherung überspringt danach spätere Ausführungen, solange die fertige versionierte Datei vorhanden ist.
Das Umgebungsarray liefert Werte, wenn Puppet diesen Befehl ausführt. Ein HTTP-Eintrag aus der HTTP-Proxy-Liste kann die Proxy-URL für einen erlaubten Download eines öffentlichen Artefakts liefern, wenn Wget keine konfigurierten oder gespeicherten Proxy-Anmeldedaten hat. Ein Export durch eine andere exec-Ressource gilt nur in jenem anderen Prozess und seinen Nachkommen. Die Reihenfolge zweier Ressourcen macht die Shell-Umgebung der ersten nicht in der zweiten dauerhaft.
Behalten Sie die Umgebung dieser Ressource bei der Ressource. Andere Puppet-Vorgänge können ihre eigenen konfigurierten Routen nutzen, ohne die maschinenweite Wget-Startdatei zu ändern.