Prostředek exec v Puppetu má atribut environment. Vložte hodnoty proxy na prostředek, který volá stahovač:

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'],
}

Příklad předpokládá, že Wget a mv jsou na těchto cestách. Neúspěšný přenos zanechá dočasné jméno cesty; konečné jméno se nainstaluje jen poté, co Wget uspěje. Pojistka creates pak přeskakuje další spuštění, dokud dokončený verzovaný soubor existuje.

Pole prostředí dodává hodnoty, když Puppet spouští tento příkaz. Záznam HTTP z seznamu HTTP proxy může dodat URL proxy pro povolené stahování veřejného artefaktu, když Wget nemá nakonfigurované ani uložené přihlašovací údaje k proxy. Export provedený jiným prostředkem exec platí jen v onom jiném procesu a jeho potomcích. Seřazení dvou prostředků nezpůsobí, že prostředí shellu prvního přetrvá do druhého.

Udržujte prostředí tohoto prostředku u prostředku. Jiné operace Puppetu mohou používat své vlastní nakonfigurované trasy, aniž by měnily celostrojový startovací soubor Wgetu.

Související články