La ressource exec de Puppet possède un attribut environment. Placez les valeurs de proxy sur la ressource qui appelle le téléchargeur :

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'exemple suppose Wget et mv à ces chemins. Un transfert échoué laisse le nom de chemin temporaire ; le nom définitif n'est installé qu'après la réussite de Wget. La garde creates ignore ensuite les exécutions ultérieures tant que le fichier versionné terminé existe.

Le tableau d'environnement fournit les valeurs lorsque Puppet exécute cette commande. Une entrée HTTP de la liste de proxys HTTP peut fournir l'URL du proxy pour un téléchargement autorisé d'artefact public lorsque Wget n'a pas d'identifiants de proxy configurés ni conservés. Une exportation effectuée par une autre ressource exec ne vaut que dans cet autre processus et ses descendants. Ordonner deux ressources ne rend pas l'environnement shell de la première persistant dans la seconde.

Gardez l'environnement de cette ressource avec la ressource. D'autres opérations Puppet peuvent utiliser leurs propres routes configurées sans modifier le fichier de démarrage de Wget à l'échelle de la machine.

Articles similaires