Puppet के exec संसाधन में environment विशेषता है। प्रॉक्सी मान उस संसाधन पर रखें जो डाउनलोडर को कॉल करता है:

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

उदाहरण मानता है कि Wget और mv उन पथों पर हैं। विफल स्थानांतरण अस्थायी पथ नाम छोड़ देता है; अंतिम पथ नाम केवल Wget के सफल होने के बाद स्थापित होता है। फिर creates गार्ड बाद के निष्पादनों को छोड़ देता है जब तक पूर्ण संस्करणित फ़ाइल मौजूद है।

जब Puppet यह कमांड चलाता है तो वातावरण सरणी मान प्रदान करती है। HTTP प्रॉक्सी सूची से HTTP प्रविष्टि अनुमत सार्वजनिक-कलाकृति डाउनलोड के लिए प्रॉक्सी URL प्रदान कर सकती है जब Wget के पास कोई कॉन्फ़िगर या सुरक्षित प्रॉक्सी क्रेडेंशियल न हों। किसी अन्य exec संसाधन द्वारा किया गया निर्यात केवल उसी अन्य प्रक्रिया और उसके वंशजों में मान्य है। दो संसाधनों को क्रम में रखने से पहले का shell वातावरण दूसरे में स्थायी नहीं होता।

इस संसाधन का वातावरण संसाधन के साथ रखें। अन्य Puppet संचालन मशीन-व्यापी Wget स्टार्टअप फ़ाइल बदले बिना अपने कॉन्फ़िगर किए गए मार्गों का उपयोग कर सकते हैं।

संबंधित लेख