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/somecommandyü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?
myvarGerç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_statetam olarak aradığım şeydi - teşekkürler. Bunu cevaplayın, kabul edeceğim!