„Puppet“ exec išteklius turi environment atributą. Įdėkite tarpinio serverio reikšmes į išteklių, kuris iškviečia atsisiuntėją:

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

Pavyzdys daro prielaidą, kad Wget ir mv yra tuose keliuose. Nepavykęs perdavimas palieka laikiną kelio pavadinimą; galutinis kelio pavadinimas įdiegiamas tik po to, kai Wget pavyksta. Tada creates apsauga praleidžia vėlesnius vykdymus, kol egzistuoja užbaigtas versijuotas failas.

Aplinkos masyvas pateikia reikšmes, kai „Puppet“ vykdo šią komandą. HTTP įrašas iš HTTP tarpinių serverių sąrašo gali pateikti tarpinio serverio URL leidžiamam viešo artefakto atsisiuntimui, kai Wget neturi sukonfigūruotų ar išsaugotų tarpinio serverio prisijungimo duomenų. Kito exec ištekliaus atliktas eksportas galioja tik tame kitame procese ir jo palikuonyse. Dviejų išteklių išdėstymas nepadaro pirmojo apvalkalo aplinkos išliekančios antrajame.

Laikykite šio ištekliaus aplinką kartu su ištekliumi. Kitos „Puppet“ operacijos gali naudoti savo sukonfigūruotus maršrutus, nekeisdamos visos mašinos Wget paleidimo failo.

Susiję straipsniai