El recurso exec de Puppet tiene un atributo environment. Coloque los valores del proxy en el recurso que invoca al descargador:

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'],
}

El ejemplo supone que Wget y mv están en esas rutas. Una transferencia fallida deja el nombre de ruta temporal; el nombre definitivo solo se instala después de que Wget tenga éxito. Después, la protección creates omite las ejecuciones posteriores mientras exista el archivo versionado completo.

La matriz de entorno proporciona valores cuando Puppet ejecuta este comando. Una entrada HTTP de la lista de proxies HTTP puede proporcionar la URL del proxy para una descarga permitida de un artefacto público cuando Wget no tiene credenciales de proxy configuradas ni conservadas. Una exportación realizada por otro recurso exec solo es válida en ese otro proceso y sus descendientes. Ordenar dos recursos no hace que el entorno de shell del primero persista en el segundo.

Mantenga el entorno de este recurso junto con el recurso. Otras operaciones de Puppet pueden usar sus propias rutas configuradas sin cambiar el archivo de inicio de Wget de toda la máquina.

Artículos relacionados