Resource exec Puppet memiliki atribut environment. Letakkan nilai proxy pada resource yang memanggil pengunduh:

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

Contoh mengasumsikan Wget dan mv berada di jalur tersebut. Transfer yang gagal meninggalkan nama jalur sementara; nama jalur akhir hanya dipasang setelah Wget berhasil. Penjaga creates kemudian melewati eksekusi berikutnya selama berkas ber-versi yang selesai masih ada.

Array lingkungan menyediakan nilai saat Puppet menjalankan perintah ini. Entri HTTP dari daftar proxy HTTP dapat menyediakan URL proxy untuk unduhan artefak publik yang diizinkan bila Wget tidak memiliki kredensial proxy yang dikonfigurasi atau disimpan. Ekspor yang dilakukan oleh resource exec lain hanya berlaku dalam proses lain itu dan turunannya. Mengurutkan dua resource tidak membuat lingkungan shell yang pertama bertahan ke yang kedua.

Pertahankan lingkungan resource ini bersama resource-nya. Operasi Puppet lain dapat memakai rute terkonfigurasinya sendiri tanpa mengubah berkas awal Wget di seluruh mesin.

Artikel terkait