Налаштування проксі-середовища під час завантаження через 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.