Setarea unui mediu proxy la o descărcare exec din Puppet
Setați valorile de mediu pe resursa exec care rulează Wget, cu o protecție a fișierului finalizat pentru descărcare.
Resursa exec din Puppet are un atribut environment. Puneți valorile proxy pe resursa care apelează descărcătorul:
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'],
}
Exemplul presupune că Wget și mv se află pe acele căi. Un transfer eșuat lasă numele de cale temporar; numele final este instalat numai după ce Wget reușește. Apoi protecția creates omite execuțiile ulterioare cât timp există fișierul versionat finalizat.
Matricea de mediu furnizează valori când Puppet rulează această comandă. O intrare HTTP din lista de proxy HTTP poate furniza URL-ul proxy pentru o descărcare permisă a unui artefact public când Wget nu are acreditive proxy configurate sau păstrate. O exportare efectuată de altă resursă exec este valabilă numai în acel alt proces și în descendenții săi. Ordonarea a două resurse nu face mediul shell al primei persistent în a doua.
Păstrați mediul acestei resurse împreună cu resursa. Alte operații Puppet pot folosi propriile rute configurate fără a modifica fișierul de pornire Wget la nivel de mașină.