شیف شروع کرنے کی مثال

Chef Getting Started Example



[GitHub پر ترمیم کریں]

اس گائیڈ میں عمومی ترتیب کے اختیارات شامل ہیں جب شیف ورک سٹیشن کی نئی تنصیب قائم کرتے وقت استعمال کیا جاتا ہے۔ اگر آپ کے پاس شیف ​​ورک سٹیشن انسٹال نہیں ہے تو ، آگے بڑھنے سے پہلے اس کی انسٹالیشن گائیڈ دیکھیں۔



روبی ماحول کو ترتیب دیں۔

شیف کے بہت سے صارفین کے لیے ، روبی کا ورژن جو شیف ورک سٹیشن میں شامل ہے آپ کے سسٹم پر روبی کے ڈیفالٹ ورژن کے طور پر کنفیگر کیا جانا چاہیے۔



نوٹ



یہ ہدایات میک او ایس اور لینکس صارفین کے لیے ہیں۔
  1. ایک ٹرمینل کھولیں اور درج ذیل درج کریں:

    which ruby 

    جو کچھ لوٹائے گا۔/usr/bin/ruby.

  2. شیف ورک سٹیشن سے فراہم کردہ روبی کو اپنے سسٹم پر بطور ڈیفالٹ روبی استعمال کرنے کے لیے ،$ PATH اورشیف ورک سٹیشن کے راستے شامل کرنے کے لیے GEM ماحولیاتی متغیرات۔ مثال کے طور پر ، ایک مشین جو باش چلاتی ہے ، چلائیں:



    echo 'eval '$(chef shell-init bash)'' >> ~/.bash_profile 

    کہاںبش اور./.bash_profile شیل کے نام کی نمائندگی کرتا ہے۔

    اگر zsh آپ کا پسندیدہ شیل ہے تو درج ذیل کو چلائیں:

    echo 'eval '$(chef shell-init zsh)'' >> ~/.zshrc 
  3. رنجو دوبارہ روبی ہے۔ اسے واپس آنا چاہیے۔/opt/chef-workstation/embedded/bin/ruby.

نوٹ

شیف ورک سٹیشن سے فراہم کردہ روبی کو بطور آپ کا سسٹم روبی استعمال کرنا اختیاری ہے۔ بہت سے صارفین کے لیے ، روبی بنیادی طور پر شیف کوک بکس کی تصنیف کے لیے استعمال ہوتی ہے۔ اگر یہ آپ کے لیے سچ ہے تو پھر شیف ورک سٹیشن کے ذریعے فراہم کردہ روبی کے استعمال کی سفارش کی جاتی ہے۔

روبی کو $ PATH میں شامل کریں۔

شیف انفرا کلائنٹ اس کے انسٹالر کے حصے کے طور پر روبی کا مستحکم ورژن شامل کرتا ہے۔ روبی کے اس ورژن کا راستہ شامل کرنا ضروری ہے$ PATH ماحول متغیر اور کمانڈ شیل (بش ، سی ایس ایچ ، اور اسی طرح) کے لئے کنفیگریشن فائل میں محفوظ ہے جو شیف ورک سٹیشن چلانے والی مشین پر استعمال ہوتی ہے۔ کمانڈ ونڈو میں ، درج ذیل ٹائپ کریں:

echo 'export PATH='/opt/chef-workstation/embedded/bin:$PATH'' >> ~/.configuration_file && source ~/.configuration_file 

کہاںconfiguration_file مخصوص کمانڈ شیل کے لیے کنفیگریشن فائل کا نام ہے۔ مثال کے طور پر ، اگر بش کمانڈ شیل ہوتا اور کنفیگریشن فائل کا نام ہوتا۔bash_profile ، کمانڈ کچھ اس طرح نظر آئے گی:

echo 'export PATH='/opt/chef-workstation/embedded/bin:$PATH'' >> ~/.bash_profile && source ~/.bash_profile 

انتباہ

مائیکروسافٹ ونڈوز پر ،C:/opscode/شیف ورک سٹیشن/بن پہلے ہونا چاہیے۔C:/opscode/Chef Workstation/Embedded/bin inراستہ

شیف کا ذخیرہ بنائیں۔

شیف ریپوزٹری بنانے کے لیے شیف جنریٹ ریپو کا استعمال کریں۔ مثال کے طور پر ، ایک ذخیرہ بنانے کے لیے کہا جاتا ہے۔ریپو مینیجر:

chef generate repo chef-repo 

.chef ڈائریکٹری بنائیں

کی.chef ڈائریکٹری تین فائلوں کو ذخیرہ کرنے کے لیے استعمال کی جاتی ہے۔

  • config.rb
  • ORGANIZATION-validator.pem
  • USER.pem

کہاںتنظیم اورUSER تار کی نمائندگی کرتا ہے جو ہر تنظیم کے لیے منفرد ہے۔ یہ فائلیں میں موجود ہونا ضروری ہےشیف ڈائرکٹری تاکہ شیف ورک سٹیشن شیف انفرا سرور سے جڑ سکے۔

بنانے کے لیے.chef ڈائریکٹری:

  1. کمانڈ ونڈو میں درج ذیل درج کریں:

    mkdir -p ~/chef-repo/.chef 

    نوٹ کریں کہ آپ کو تبدیل کرنے کی ضرورت ہوگی۔شیف ریپو اس ذخیرے کے نام کے ساتھ جو آپ نے پہلے بنایا تھا۔

  2. کے بعد.chef ڈائرکٹری بنائی گئی ہے ، درج ذیل فولڈر کا ڈھانچہ مقامی مشین پر موجود ہوگا:

    chef-repo/ .chef/ << the hidden directory certificates/ config/ cookbooks/ data_bags environments/ roles/ 
  3. شامل کریں.chef کو.gitignore فائل کے مواد کو اپ لوڈ کرنے سے روکنے کے لیے۔.chef فولڈر کو GitHub. مثال کے طور پر:

    echo '.chef' >> ~/chef-repo/.gitignore 

کوڈ ایڈیٹر انسٹال کریں۔

ایک اچھا بصری کوڈ ایڈیٹر شیف انفرا کے ساتھ کام کرنے کی ضرورت نہیں ہے ، لیکن ایک اچھا کوڈ ایڈیٹر آپ کا وقت بچا سکتا ہے۔ ایک کوڈ ایڈیٹر کو مندرجہ ذیل کی حمایت کرنی چاہیے: تھیمز ، پلگ انز ، سنیپٹس ، نحو روبی کوڈ کلرنگ/ہائی لائٹنگ ، ایک سے زیادہ کرسرز ، پورے فولڈر/ریپوزٹری کا درخت کا منظر جس کے ساتھ آپ کام کر رہے ہیں ، اور گٹ انضمام۔

یہ چند عام ایڈیٹرز ہیں:

ایڈیٹرز میں شیف انفرا سپورٹ:

سٹارٹر کٹ۔

اگر آپ کو آٹومیٹ یا شیف مینیج کے ذریعے شیف انفرا سرور تک رسائی حاصل ہے تو آپ سٹارٹر کٹ ڈاؤن لوڈ کر سکتے ہیں۔ سٹارٹر کٹ ضروری کنفیگریشن فائلیں بنائے گی:.chef ڈائریکٹری ،config.rb ،ORGANIZATION-validator.pem ، اورUSER.pem صرف اسٹارٹر کٹ ڈاؤن لوڈ کریں اور پھر اسے اپنی شیف ورک سٹیشن مشین پر مطلوبہ مقام پر منتقل کریں۔

شیف ریپوزٹری کو ترتیب دیں۔

WebUI کے ساتھ۔

شیف ریپو کو دستی طور پر ترتیب دینے اور شیف مینجمنٹ کنسول کو حاصل کرنے کے لیے درج ذیل اقدامات استعمال کریں۔.pem اورconfig.rb فائلیں۔

کنفگ فائلیں حاصل کریں۔

شیف ورک سٹیشن کی تنصیب کے لیے جو شیف انفرا سرور (بشمول میزبان شیف انفرا سرور) کے ساتھ بات چیت کرے گی ، درج ذیل فائلوں کو لاگ ان کریں اور ڈاؤن لوڈ کریں:

  • config.rb یہ کنفیگریشن فائل سے ڈاؤن لوڈ کی جا سکتی ہے۔ تنظیمیں۔ صفحہ.
  • ORGANIZATION-validator.pem. یہ نجی کلید سے ڈاؤن لوڈ کی جا سکتی ہے۔ تنظیمیں۔ صفحہ.
  • USER.pem یہ نجی کلید سے ڈاؤن لوڈ کی جا سکتی ہے۔ پاس ورڈ تبدیل کریں کا سیکشن اکاؤنٹ مینجمنٹ۔ صفحہ.

کنفیگ فائلیں منتقل کریں۔

کیconfig.rb ،ORGANIZATION-validator.pem ، اورUSER.pem فائلوں کو اس میں منتقل کرنا ضروری ہے۔شیف ڈائرکٹری شیف انفرا سرور سے ڈاؤنلوڈ ہونے کے بعد۔

فائلوں کو اس میں منتقل کرنے کے لیے۔.chef ڈائریکٹری:

  1. کمانڈ ونڈو میں درج ذیل میں سے ہر ایک درج کریں:

    cp /path/to/config.rb ~/chef-repo/.chef 

    اور:

    cp /path/to/ORGANIZATION-validator.pem ~/chef-repo/.chef 

    اور:

    cp /path/to/USERNAME.pem ~/chef-repo/.chef 

    کہاں/path/to/اس مقام کی راہ کی نمائندگی کرتا ہے جس میں یہ تینوں فائلیں ڈاؤن لوڈ ہونے کے بعد رکھی گئی تھیں۔

  2. تصدیق کریں کہ فائلیں.chef فولڈر.

ویب یو آئی کے بغیر۔

شیف ذخیرہ کو دستی طور پر ترتیب دینے کے لیے درج ذیل اقدامات استعمال کریں: اپنے شیف انفرا سرور پر ،ORGANIZATION-validator.pem اورUSER.pem فائلوں کے ساتھشیف سرور-سی ٹی ایل کمانڈ لائن ٹول۔ پھر ، اپنے ورک سٹیشن پرconfig.rb فائل کے ساتھچاقو کا آلہ.

ایک تنظیم بنائیں۔

شیف انفرا سرور مشین پرORGANIZATION-validator.pem استعمال کرتے ہوئے کمانڈ لائن سے۔شیف سرور-سی ٹی ایل مندرجہ ذیل کمانڈ چلائیں:

chef-server-ctl org-create ORG_NAME ORG_FULL_NAME -f FILE_NAME 

کہاں

  • نام کا آغاز ایک چھوٹے سے حرف یا ہندسے سے ہونا چاہیے ، اس میں صرف چھوٹے حروف ، ہندسے ، ہائفن اور انڈر سکور شامل ہو سکتے ہیں اور یہ 1 اور 255 حروف کے درمیان ہونا چاہیے۔ مثال کے طور پر:سربراہ
  • مکمل نام غیر سفید جگہ کے ساتھ شروع ہونا چاہیے اور 1 اور 1023 حروف کے درمیان ہونا چاہیے۔ مثال کے طور پر:شیف سافٹ ویئر ، انکارپوریٹڈ
  • -f FILE_NAME: لکھیںORGANIZATION-validator.pem toFILE_NAME پرنٹ کرنے کے بجائے۔STDOUT. مثال کے طور پر:/tmp/chef.key.

مثال کے طور پر ، ایک تنظیم جس کا نام ہے۔شیف ، کے مکمل نام کے ساتھ۔شیف سافٹ ویئر ، انکارپوریٹڈ ، اور ORGANIZATION-validator.pem فائل کے ساتھ محفوظ ہے۔/tmp/chef.key:

chef-server-ctl org-create chef 'Chef Software, Inc.' -f /tmp/chef.key 

ایک صارف بنائیں۔

شیف انفرا سرور مشین پرUSER.pem استعمال کرتے ہوئے کمانڈ لائن سے۔شیف سرور-سی ٹی ایل مندرجہ ذیل کمانڈ چلائیں:

chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL PASSWORD -f FILE_NAME 

کہاں

  • -f FILE_NAME لکھتا ہےUSER.pem فائل کی بجائے۔STDOUT. مثال کے طور پر:/tmp/grantmc.key.

مثال کے طور پر: ایک صارف جس کا نام ہے۔Grantmc ، کے پہلے اور آخری نام کے ساتھ۔گرانٹ میک لینن ، کا ای میل پتہ۔[ای میل محفوظ] ، ناقص طور پر منتخب کردہ پاس ورڈ ، اورUSER.pem فائل میں محفوظ ہو گئی۔/tmp/grantmc.key:

chef-server-ctl user-create grantmc Grant McLennan grantmc@chef.io p@s5w0rD! -f /tmp/grantmc.key 

.pem فائلیں منتقل کریں۔

ڈاؤن لوڈ کریں۔ORGANIZATION-validator.pem اورUSER.pem شیف انفرا سرور سے فائلیں اور انہیں.chef ڈائریکٹری.

فائلوں کو .chef ڈائرکٹری میں منتقل کرنے کے لیے:

  1. کمانڈ ونڈو میں درج ذیل میں سے ہر ایک درج کریں:

    cp /path/to/ORGANIZATION-validator.pem ~/chef-repo/.chef 

    اور:

    cp /path/to/USERNAME.pem ~/chef-repo/.chef 

    کہاں/path/to/اس مقام کی راہ کی نمائندگی کرتا ہے جس میں یہ تینوں فائلیں ڈاؤن لوڈ ہونے کے بعد رکھی گئی تھیں۔

  2. تصدیق کریں کہ فائلیں.chef فولڈر.

config.rb فائل بنائیں۔

پر جائیں۔che/chef-repo/.chef ڈائریکٹری بنائیں اورconfig.rb استعمال کرتے ہوئے۔چاقو کی تشکیل کا آلہ فائل کو اس میں بنانا چاہیے۔.chef فولڈر. یہ اسی طرح نظر آنا چاہیے:

current_dir = File.dirname(__FILE__) log_level :info log_location STDOUT node_name 'node_name' client_key '#{current_dir}/USER.pem' validation_client_name 'ORG_NAME-validator' validation_key '#{current_dir}/ORGANIZATION-validator.pem' chef_server_url 'https://api.chef.io/organizations/ORG_NAME' cache_type 'BasicFile' cache_options( :path => '#{ENV['HOME']}/.chef/checksums' ) cookbook_path ['#{current_dir}/../cookbooks'] 

کم از کم ، آپ کو درج ذیل ترتیبات کو مناسب اقدار کے ساتھ اپ ڈیٹ کرنا ہوگا۔

  • client_key کو شیف انفرا سرور صارف کے مقام کی طرف اشارہ کرنا چاہیے۔.pem فائل اپنے شیف ورک سٹیشن مشین پر۔
  • validation_client_name کو مطلوبہ تنظیم کے نام کے ساتھ اپ ڈیٹ کیا جانا چاہیے جو شیف انفرا سرور پر بنائی گئی تھی۔
  • validation_key کو آپ کی تنظیم کے مقام کی طرف اشارہ کرنا چاہیے۔.pem فائل اپنے شیف ورک سٹیشن مشین پر۔
  • chef_server_url شیف انفرا سرور تک رسائی کے لیے استعمال ہونے والے ڈومین یا آئی پی ایڈریس کے ساتھ اپ ڈیٹ ہونا ضروری ہے۔

مزید تفصیلات کے لیے چاقو config.rb دستاویزات دیکھیں۔

SSL سرٹیفکیٹ حاصل کریں۔

شیف سرور 12 اور بعد میں سرور کو کی گئی تمام درخواستوں کے لیے بطور ڈیفالٹ ایس ایس ایل کی توثیق کو قابل بناتا ہے ، جیسے چاقو اور شیف انفرا کلائنٹ کے ذریعے کی گئی درخواستیں۔ شیف انفرا سرور کی تنصیب کے دوران جو سرٹیفکیٹ تیار کیا جاتا ہے وہ خود دستخط شدہ ہوتا ہے ، جس کا مطلب ہے کہ تصدیق کرنے کے لیے دستخطی سرٹیفکیٹ اتھارٹی (CA) نہیں ہے۔ اس کے علاوہ ، یہ سرٹیفکیٹ کسی بھی مشین پر ڈاؤن لوڈ ہونا ضروری ہے جہاں سے چاقو اور/یا شیف انفرا کلائنٹ شیف انفرا سرور سے درخواستیں کرے گا۔

کا استعمال کرتے ہیںایس ایس ایل سرٹیفکیٹ شیف انفرا سرور سے نیچے کھینچنے کے لیے چاقو ssl سب کمانڈ لائیں:

knife ssl fetch 

چاقو اور شیف انفرا کلائنٹ شیف انفرا سرور کے ذریعہ تیار کردہ ایس ایس ایل سرٹیفکیٹ کے استعمال کے بارے میں مزید معلومات کے لیے ایس ایس ایل سرٹیفکیٹ دیکھیں۔

سرور مواصلات کی تصدیق کریں۔

اس بات کی تصدیق کرنے کے لیے کہ شیف ورک سٹیشن شیف انفرا سرور سے منسلک ہو سکتا ہے:

  1. کمانڈ ونڈو میں ، شیف ذخیرے پر جائیں:

    cd ~/chef-repo 
  2. کمانڈ ونڈو میں درج ذیل درج کریں:

    knife client list 

    کلائنٹس (رجسٹرڈ نوڈس اور شیف ورک سٹیشن انسٹالیشنز) کی ایک فہرست واپس کرنے کے لیے جنہیں شیف انفرا سرور تک رسائی حاصل ہے۔ مثال کے طور پر:

    chefdk_machine registered_node 

ایڈہاک ریموٹ پھانسی کے ساتھ۔شیف رن

کیشیف سے چلنے والی افادیت آپ کو ان نظاموں پر ایڈہاک کنفیگریشن اپ ڈیٹس چلانے کی اجازت دیتی ہے جنہیں آپ شیف سرور قائم کیے بغیر سنبھالتے ہیں۔ کے ساتھ۔شیف رن ، آپ SSH یا WinRM پر سرورز سے جڑ جاتے ہیں ، اور آپ کمانڈ لائن سے براہ راست سنگل وسائل ، ترکیبیں ، یا یہاں تک کہ پوری کوک بکس کا اطلاق کرسکتے ہیں۔

مثال: این ٹی پی سرور انسٹال کرنا۔

شیف ورک سٹیشن InSpec اورشیف رن ، آپ کو کسی بھی ٹارگٹ مثال پر مسائل کا آسانی سے پتہ لگانے اور درست کرنے کی صلاحیت فراہم کرتا ہے۔ ایک عام کام جو منتظمین اپنے ماحول میں انجام دیتے ہیں وہ ہے نیٹ ورک ٹائم پروٹوکول (این ٹی پی) ، جو گھڑیوں کو سرورز کے درمیان مطابقت پذیر رکھتا ہے۔ InSpec ہمیں InSpec کا استعمال کرتے ہوئے یہ چیک کرنے کی اجازت دیتا ہے کہ آیا پیکیج کسی استفسار کے ساتھ انسٹال ہے یا نہیں۔پیکیج وسائل:

describe package('ntp') do it { should be_installed } end 

شیف نیٹ ورک ٹائم پروٹوکول پیکیج کو انسٹال کرنے کے لیے سنگل ریسورس حل بھی فراہم کرتا ہے۔

package 'ntp' do action :install end 

کے ساتھ۔شیف رن ، آپ براہ راست کمانڈ لائن سے ریسورس چلا سکتے ہیں ، اپنے اہداف کو ایک ہی ریسورس میں تبدیل کر سکتے ہیں ، بغیر کوک بک یا ریسیپی بنائے:

chef-run myhost package ntp action=install 

کامیاب پیکیج کی تنصیب کی توثیق کے لیے ایک انسپیک اسکین کو انجام دینے کے ساتھ ، ہمارے پاس ہر وہ چیز موجود ہے جو ہمیں اپنی ضروریات کی وضاحت کرنے کے لیے درکار ہے ، اور اس بات کو یقینی بنائیں کہ وہ دو سادہ کمانڈز سے ملیں ، یا تو مقامی طور پر یا دور سے۔

inspec exec ntp-check -t ssh://myuser@myhost -i ~/.ssh/mykey 
chef-run -i ~/.ssh/mykey myuser@myhost package ntp action=install 

شیف این ٹی پی انسٹالیشن چلائیں۔

ترکیب اور ملٹی نوڈ کنورجنس۔

استعمال کریں۔شیف کی ترکیبیں اور باورچی کتابیں بھی چلانے کے لیے شیف چلائیں ، اور اسے متوازی طور پر متعدد اہداف کے خلاف چلائیں۔ عمل میں شیف کے چلانے کی چند مثالیں یہ ہیں:

مثال: متعدد اہداف پر نسخے پر عملدرآمد۔

ڈیفالٹ کوکی بک سے دو وسائل کے خلاف ڈیفالٹ نسخہ چلائیں: myhost1 اور myhost2.

chef-run myhost1,myhost2 /path/to/my/cookbook 

مثال: متبادل ترکیب ترکیب اور اہداف جو ایک رینج کے ذریعے متعین کیے گئے ہیں۔

چلائیںmy_cookbook :: my_recipe cookbook کے خلاف بیس وسائل: myhost1 تا myhost20۔

chef-run myhost[1:20] my_cookbook::my_recipe 

مزید پڑھنے