2011-10-16 15 views
20

मैं यह पता लगाने की कोशिश कर रहा हूं कि नोड का नाम (knife bootstrap -N) टेम्पलेट में कैसे प्राप्त करें। मैंने एक दर्जन अलग-अलग विचारों की कोशिश की है और अभी तक कुछ भी नहीं मिला है जो अभी तक काम करता है। क्या किसी को यह पता है कि शेफ रेसिपी से इसका उपयोग कैसे किया जाए?शेफ टेम्पलेट में नोड नाम?

इसके अलावा - एक शेफ रेसिपी के लिए उपलब्ध सभी चर सूचीबद्ध करने का कोई तरीका है?

उत्तर

30

आप अपने नुस्खा में Chef::Config[:node_name] का उपयोग कर सकते हैं। मैंने इसे ओप्सकोड से शेफ-क्लाइंट कुकबुक में पाया।

+2

मैं @anaudmeuret के साथ सहमत हूं, यह समाधान शेफ में और एक नुस्खा में मेरे लिए काम करता था, जहां स्वीकृत उत्तर नहीं था। – jslatts

+1

मूल प्रश्न यह है कि टेम्पलेट में नोड नाम का उपयोग कैसे करें। यह उत्तर इसके लिए काम नहीं करता है। असल में, <% = node.name%> .erb फ़ाइल के लिए पूर्ण वाक्यविन्यास है, और टेम्पलेट में नोड नाम का उपयोग कैसे करें। – Andrew

+0

ऐसा लगता है कि टेम्पलेट सिंटैक्स और रेसिपी सिंटैक्स अलग हैं। मेरे पास एक टेम्पलेट है जो <% = node.name%> वाक्यविन्यास का उपयोग करता है और केवल ऊपर दिए गए शेफ :: कॉन्फ़िगर [: node_name] वाक्यविन्यास को नुस्खा – jorfus

34

एक क्लीनर और अधिक संक्षिप्त तरीके Attributes विकि पृष्ठ पर दिखाया गया है: "। नोड"

node.name 
+1

में उपयोग करता है यह FQDN देता है। संक्षिप्त नाम पाने का कोई तरीका? –

+2

मुझे ऐसा करने के लिए बहुत ही शेफ-लाइ तरीका नहीं पता है, लेकिन node.name.split ('।') [0] ठीक काम करता है –

+2

शेफ विशेषताओं को प्राप्त करते समय आपको हमेशा नोड [: विशेषता] वाक्यविन्यास का उपयोग करना चाहिए। ओईई डिवीड विशेषता नोड पर है [: होस्टनाम] –

4

सभी नोड विशिष्ट विशेषताओं प्रकार कमांड के साथ

knife node edit <name> -a 

प्रथम स्तर कुंजी सुलभ देखने के लिए उपसर्ग।

{ 
    "name": "n1", 
    ... 
    "hostname": "chef-n1", 
    "fqdn": "chef-n1.dan.lan", 
    "domain": "dan.lan", 
    "ipaddress": "192.168.4.4", 
    "macaddress": "52:54:00:72:E7:C5", 
संबंधित मुद्दे