Zasób exec w Puppecie ma atrybut environment. Umieść wartości proxy w zasobie, który wywołuje pobieranie:

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

Przykład zakłada, że Wget i mv znajdują się na tych ścieżkach. Nieudane przesłanie pozostawia tymczasową nazwę ścieżki; ostateczna nazwa jest instalowana dopiero po sukcesie Wget. Następnie zabezpieczenie creates pomija późniejsze wykonania, dopóki istnieje ukończony plik wersjonowany.

Tablica środowiska dostarcza wartości, gdy Puppet wykonuje to polecenie. Wpis HTTP z listy proxy HTTP może dostarczyć adres URL proxy do dozwolonego pobrania publicznego artefaktu, gdy Wget nie ma skonfigurowanych ani zachowanych danych uwierzytelniających proxy. Eksport wykonany przez inny zasób exec działa tylko w tym drugim procesie i jego potomkach. Uporządkowanie dwóch zasobów nie sprawia, że środowisko powłoki pierwszego utrzymuje się w drugim.

Trzymaj środowisko tego zasobu razem z zasobem. Inne operacje Puppeta mogą używać własnych skonfigurowanych tras bez zmiany ogólnomaszynowego pliku startowego Wget.

Powiązane artykuły