previous = Chef::Config[:http_proxy]
Chef::Config[:http_proxy] = 'http://proxy.example.net:8080'

remote_file '/var/tmp/package.zip' do
  source 'https://downloads.example.net/package.zip'
end

Chef::Config[:http_proxy] = previous

Nilai sementara itu sudah hilang sebelum sumber biasa ini memuat turun apa-apa:

  1. Compile: Ruby peringkat atas menyimpan nilai, menetapkan proksi sementara, mengisytiharkan remote_file dan memulihkan nilai.
  2. Converge: sumber itu melaksanakan tindakannya dengan konfigurasi yang tersedia pada masa itu.

Proksi klien yang stabil dengan pengecualian dalaman yang sesuai mengelakkan masalah pemasaan ini. Gunakan sintaks pengecualian yang didokumenkan oleh klien yang dipasang dan bukannya menganggap peraturan wildcard shell. Untuk muat turun artifak awam secara berasingan pada laluan awam yang dibenarkan, entri daripada senarai proksi HTTP boleh menyediakan titik akhir HTTP yang stabil apabila klien Chef tiada akaun proksi yang dikonfigurasikan atau disimpan. Kekalkan pengecualian dalamannya; memilih alamat tidak mengubah bila compile dan converge menggunakannya.

Jika satu operasi memerlukan laluan khas, letakkan perubahan konfigurasi dan pelaksanaannya dalam skop yang sama. Sumber tersuai dengan tingkah laku unified-mode yang sesuai ialah satu pilihan, tetapi Chef::Config kekal global. Pulihkannya apabila muat turun gagal dan apabila fail sudah terkini. Pemberitahuan kemas kini tidak berjalan tanpa syarat, dan sumber pembersihan kemudian mungkin tidak pernah berjalan selepas pengecualian.

Sifat lazy source menangguhkan penilaian sifat itu, bukan penetapan Ruby di sekelilingnya. Pelaksanaan sumber pada masa compile ialah pilihan disokong yang berasingan apabila muat turun memang tergolong pada masa itu; ia juga mengubah pemasaan kebergantungan dan pemberitahuan. Pilih mengikut bila klien HTTP menggunakan tetapan proksinya, bukannya mengharapkan susunan pengisytiharan memberikan pengasingan.

Artikel berkaitan