Şef olarak, rol dosyalarındaki özelliklere nasıl erişirim?


13

Rol dosyalarındaki öznitelikleri belgelendiği gibi ayarlayabiliyorum, ancak kullandığım yemek kitapları tarafından önceden ayarlanmış özniteliklere erişemiyorum.

Örneğin /roles/appserver.rb içinde:

name "appserver"

run_list(%w{
  recipe[tomcat::default]
})

default_attributes(
  :tomcat => {
    :java_options => "-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=" + node[:tomcat][:log_dir]
  }
)

Ne olsun şef 'düğüm' yöntemi / değişken bulamayan bir istisna olduğunu.

Teşekkürler

Yanıtlar:


12

Yapamazsın. Rolü sunucuya bıçakla yüklediğinizde Ruby DSL rolü Ruby'den JSON'a dönüştürülür. Bir Chef çalışması bağlamında işlenmediği için düğüm nesnesi kullanılamıyor.

Bunun yerine düğüm niteliklerini birleştirmek istiyorsanız, bunu bir tarifte yapmalısınız, örneğin:

"#{node[:tomcat][:java_options]}#{node[:tomcat][:log_dir]}"

0

Aslında require_relative 'base_role_file'bir rol içinde kullanabilirsiniz ve bu gerekli dosya kullanmanız için bazı global değişkenler ayarlayabilir. Oldukça çılgın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.