2012-04-25 28 views
7

Şef tarafından yönetilen bir sunucum var. Chef tarafından çalıştırılmayan komut dosyalarından bir yemek kitabı veri çantasında yaşayan bazı değerlere erişmem gerekiyor.Bir şef veri torbasından mevcut değerlere nasıl erişilir?

/* Chef REST API şef sunucusu tarafından görüldüğü gibi veri torba değerlerine erişilebilir. İstediğim bu değil. Her chef-client çalıştırması, veri çantasındaki değişiklikler de dahil olmak üzere bir dizi koordineli değişiklik yapabilir. Sunucudaki veriler zaten değişmiş olsa da, chef-client yerel olarak çalışmadıysa, yerel kurulum ve sunucu tarafı veri paketi eşitlenmemiş olabilir. daha az ya da çok normal bir Ruby beri//var/cache/chef/cookbooks/<book-name> altında veri torba dosyasını içe

  • Ayrıştırma: */

    Ben iki çözüm bakın.

  • Bir tarif içinde, veri çantasından ilgili verileri komut dosyalarından erişilebilen düz bir dosyaya dökün.

orada daha iyi seçenekler var? ayrı bir dosyaya düğüm karma veya veri torba veri Damping

+0

Bir Şef tarifi istediğinizi yapamayacağınız bir neden var mı? –

+0

@Jordan: Hayır; bu sadece bir seçenek olduğu için bir reçeteden yapılabilir. kabul edilen cevap önerdi. – 9000

cevap

7

şef sunucusu ve bir düğümde çalışan komut dosyaları arasında iletişim için iyi bir yoldur. senaryonuz JSON ayrıştırmak için, daha sonra gerçekten kolaydır:

file "/etc/script.json" do 
    owner "root" 
    group "root" 
    mode 0644 
    content node[:whatever].to_json 
end 

Chef DİNLENME arayüzü overkill gibi geliyor kullanarak, ve/var çevresini yoklayarak/cache/şef sadece kaba. (-:

İlgili konular