exec resource exec ຂອງ Puppet ມີ attribute environment. ໃສ່ຄ່າພຣອກຊີໃນ resource ທີ່ເອີ້ນຕົວດາວໂຫລດ:

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 ຈະຂ້າມການປະຕິບັດຕໍ່ໄປ ຕາບໃດທີ່ໄຟລ໌ສະບັບສຳເລັດແລ້ວຍັງມີຢູ່.

array ສະພາບແວດລ້ອມໃຫ້ຄ່າເມື່ອ Puppet ລັນຄຳສັ່ງນີ້. ລາຍການ HTTP ຈາກ ລາຍຊື່ພຣອກຊີ HTTP ສາມາດໃຫ້ URL ພຣອກຊີສຳລັບການດາວໂຫລດແອັດຕິຟາກສາທາລະນະທີ່ອະນຸຍາດ ເມື່ອ Wget ບໍ່ມີຂໍ້ມູນຢືນຢັນພຣອກຊີທີ່ຕັ້ງຄ່າ ຫຼືເກັບໄວ້. ການສົ່ງອອກທີ່ເຮັດໂດຍ exec resource ອື່ນມີຜົນພຽງແຕ່ໃນຂະບວນການອື່ນນັ້ນ ແລະລູກຫຼານຂອງມັນ. ການຈັດລຳດັບ resource ສອງອັນບໍ່ເຮັດໃຫ້ສະພາບແວດລ້ອມ shell ຂອງອັນທຳອິດຄົງຢູ່ໃນອັນທີສອງ.

ຮັກສາສະພາບແວດລ້ອມຂອງ resource ນີ້ໄວ້ກັບ resource. ການດຳເນີນການ Puppet ອື່ນໆສາມາດໃຊ້ເສັ້ນທາງທີ່ຕັ້ງຄ່າຂອງຕົນເອງ ໂດຍບໍ່ປ່ຽນໄຟລ໌ເລີ່ມຕົ້ນ Wget ຂອງເຄື່ອງທັງໝົດ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ