A Puppet exec erőforrásának van environment attribútuma. Helyezze a proxy értékeket arra az erőforrásra, amely a letöltőt meghívja:

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

A példa feltételezi, hogy a Wget és az mv ezeken az útvonalakon van. Egy sikertelen átvitel meghagyja az ideiglenes útvonalnevet; a végleges útvonalnév csak a Wget sikere után települ. Ezután a creates őr kihagyja a későbbi futtatásokat, amíg a kész, verziózott fájl létezik.

A környezeti tömb akkor ad értékeket, amikor a Puppet futtatja ezt a parancsot. Egy HTTP-bejegyzés az HTTP proxy listáról biztosíthatja a proxy URL-t egy engedélyezett nyilvános artefaktum letöltéséhez, ha a Wgetnek nincs beállított vagy tárolt proxy hitelesítő adata. Egy másik exec erőforrás által végzett export csak abban a másik folyamatban és leszármazottjaiban érvényes. Két erőforrás sorrendbe állítása nem teszi az első shell környezetét tartóssá a másodikban.

Tartsa ennek az erőforrásnak a környezetét az erőforrásnál. Más Puppet műveletek használhatják saját beállított útvonalaikat anélkül, hogy módosítanák a gép szintű Wget indítófájlt.

Kapcsolódó cikkek