बावर्ची - पर्यावरण चर
पर्यावरण चर किसी भी विशेष नोड पर शेफ नुस्खा को सफलतापूर्वक चलाने के लिए एक महत्वपूर्ण तरीका है। इसे करने के कई तरीके हैं, या तो मैन्युअल रूप से उन्हें सेट करना या शेल स्क्रिप्ट का उपयोग करके। नुस्खा के माध्यम से उन्हें निर्धारित करना यहां हमें प्रदर्शन करने की आवश्यकता है।
ऐसा करने के लिए, हमारे पास एक कुकबुक होनी चाहिए, यहां हम test_cookbook और एक रन सूची का उपयोग करेंगे जिसमें test_cookbook शामिल है।
शेफ पकाने की विधि का उपयोग करके पर्यावरण चर सेट करना
Step 1 - पर्यावरण चर के साथ रसोई की किताब का डिफ़ॉल्ट नुस्खा अपडेट करें।
vipin@laptop:~/chef-repo $ subl cookbooks/test_cookbook/recipes/default.rb
ENV['MESSAGE'] = 'Testing environment variable update with chef !'
execute 'print value of environment variable $MESSAGE' do
command 'echo $MESSAGE > /tmp/message'
end
Step 2 - अपडेटेड कुकबुक को सर्वर पर अपलोड करें।
vipin@laptop:~/chef-repo $ knife cookbook upload test_cookbook
Uploading my_cookbook [0.1.0]
Step 3 - एक अस्थायी फ़ाइल बनाने के लिए शेफ़ क्लाइंट चला रहा है।
user@server:~$ sudo chef-client
...TRUNCATED OUTPUT...
[2013-01-25T15:01:57+00:00] INFO: Processing execute[print
value of environment variable $MESSAGE] action run
(my_cookbook::default line 11)
[2013-01-25T15:01:57+00:00] INFO: execute[print value of
environment variable $MESSAGE] ran successfully
...TRUNCATED OUTPUT...
वैरिएबल को मान्य करना
user@server:~$ cat /tmp/message
Hello from Chef
कार्य विधि
रूबी ईएनवी के माध्यम से वर्तमान पर्यावरण चर को उजागर करता है –a पर्यावरण चर को पढ़ने और संशोधित करने के लिए हैश।
संसाधन निष्पादित करें
हम कुकबुक की शेफ डिफ़ॉल्ट रेसिपी के अंदर भी ऐसा करने के लिए एग्जीक्यूट रिसोर्स का उपयोग कर सकते हैं।
mma@laptop:~/chef-repo $ subl cookbooks/test_cookbook/recipes/default.rb
execute 'print value of environment variable $MESSAGE' do
command 'echo $MESSAGE > /tmp/message'
environment 'MESSAGE' => 'Hello from the execute resource'
end
Note- ईएनवी का उपयोग करके एक पर्यावरण चर स्थापित करना उस चर को पूरे शेफ रन के दौरान उपलब्ध कराएगा। इसके विपरीत, इसे निष्पादित संसाधन में पास करना केवल इसे उपलब्ध कराएगा जो संसाधन द्वारा निष्पादित एक कमांड के लिए है।