Ресурсът 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.

Подобни статии