Puppet'in exec kaynağında environment özniteliği vardır. Proxy değerlerini indiriciyi çağıran kaynağa koyun:

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

Örnek, Wget ve mv'nin bu yollarda olduğunu varsayar. Başarısız aktarım geçici yol adını bırakır; son yol adı ancak Wget başarılı olduktan sonra kurulur. Ardından creates koruması, tamamlanmış sürümlü dosya var olduğu sürece sonraki çalıştırmaları atlar.

Ortam dizisi, Puppet bu komutu çalıştırdığında değerleri sağlar. HTTP proxy listesinden bir HTTP girdisi, Wget'te yapılandırılmış veya saklanmış proxy kimlik bilgisi yokken izin verilen bir genel yapıt indirmesi için proxy URL'sini sağlayabilir. Başka bir exec kaynağının yaptığı dışa aktarma yalnızca o diğer süreçte ve onun alt süreçlerinde geçerlidir. İki kaynağı sıralamak, birincinin kabuk ortamını ikincide kalıcı yapmaz.

Bu kaynağın ortamını kaynakla birlikte tutun. Diğer Puppet işlemleri, makine genelindeki Wget başlangıç dosyasını değiştirmeden kendi yapılandırılmış yollarını kullanabilir.

İlgili makaleler