Настройка прокси-окружения при загрузке через Puppet exec
Задайте значения окружения у ресурса exec, который запускает Wget, с защитой по завершённому файлу для загрузки.
У ресурса 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.