Impostare un ambiente proxy su un download exec di Puppet
Impostate i valori d'ambiente sulla risorsa exec che esegue Wget, con una guardia sul file completato per il download.
La risorsa exec di Puppet ha un attributo environment. Mettete i valori del proxy sulla risorsa che richiama il downloader:
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'],
}
L'esempio presuppone Wget e mv su quei percorsi. Un trasferimento fallito lascia il nome di percorso temporaneo; il nome definitivo viene installato solo dopo che Wget è riuscito. Poi la guardia creates salta le esecuzioni successive finché esiste il file versionato completato.
L'array di ambiente fornisce i valori quando Puppet esegue questo comando. Una voce HTTP dalla lista di proxy HTTP può fornire l'URL del proxy per un download consentito di un artefatto pubblico quando Wget non ha credenziali proxy configurate né conservate. Un'esportazione eseguita da un'altra risorsa exec vale solo in quell'altro processo e nei suoi discendenti. Ordinare due risorse non rende l'ambiente shell della prima persistente nella seconda.
Tenete l'ambiente di questa risorsa con la risorsa. Altre operazioni Puppet possono usare le proprie route configurate senza cambiare il file di avvio di Wget a livello di macchina.