Diyelim ki bazı Şef kodlarım var:
require 'mixlib/shellout'
yum_package 'somepackage'
myvar = Mixlib::ShellOut.new('/bin/somecommand').run_command.stdout.strip
Nerede /bin/somecommand
yüklü olmadığı için henüz mevcut değil somepackage
. Bu, bu nedenle tarif derleme zamanında başarısız olur, ancak paketin başarıyla yüklenmesini sağlayarak yakınsama zamanında çalışacaktır (ve eğer açık değilse, tarif zaten başarısız olmuştur). Bu, paket önceden birlikte derlendiğinden, çalışma listesinde önceki bir tarif olarak yüklendiğinde de başarısız olur. Bir Şef tarifine, tarifin veya çalışma listesinin kendini yüklediği şeyleri nasıl ekleyebilirim?
myvar
Gerçek bir cevabın kullanımı hakkında fikir sahibi olmadan , genellikle diğer kaynakları tanımlamak için çok gerekli olmadıkça, derleme zamanında harici komutlardan kod değerlendirmesini kullanmaktan kaçınırım. Kısacası, birruby_block 'set myvar' { node.run_state['myvar'] = Mixlib::ShellOut.[...] }
node.run_state
tam olarak aradığım şeydi - teşekkürler. Bunu cevaplayın, kabul edeceğim!