Рэсурс exec у Puppet мае атрыбут 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, дзейнічае толькі ў тым іншым працэсе і яго нашчадках. Упарадкаванне двух рэсурсаў не робіць асяроддзе першага захаваным у другім.

Трымайце асяроддзе гэтага рэсурсу разам з рэсурсам. Іншыя аперацыі Puppet могуць выкарыстоўваць свае наладжаныя маршруты, не змяняючы агульны для машыны файл запуску Wget.

Падобныя артыкулы