دروس الشيف - تحويل البنية التحتية إلى كود



Chef Tutorial هي المدونة الثانية من سلسلة مدونة Chef. تشرح هذه المدونة هندسة الشيف ومكونات الشيف مثل كتب الطبخ والوصفات وما إلى ذلك مع أمثلة.

الشيف التعليمي

Chef Tutorial هي المدونة الثانية من سلسلة مدونة Chef. في المدونة السابقة ، لقد شرحت ما هو الشيف وإدارة التهيئة وكيف يحقق الشيف إدارة التهيئة بمساعدة حالة استخدام Gannett.

في هذا البرنامج التعليمي للشيف سيتم تناول الموضوعات التالية:





أنا متأكد بعد قراءة بلدي المدونة السابقة يجب أن تكون فضوليًا لمعرفة كيف يعمل الشيف بالضبط. سيشرح لك القسم الأول من مدونة الشيف التعليمية هذه هندسة الشيف بالتفصيل ، والتي ستزيل كل شكوكك.



دروس الشيف - هندسة معمارية الشيف

كما هو موضح في الرسم البياني أدناه ، هناك ثلاثة مكونات رئيسية للشيف:

  • محطة العمل
  • الخادم
  • العقد

هندسة الشيف - دروس الشيف - Edureka

دروس الشيف - محطة العمل



محطة العمل هي المكان الذي توجد منه جميع تكوينات الشيفتمكنت. يحتفظ هذا الجهاز بجميع بيانات التكوين التي يمكن دفعها لاحقًا إلى خادم الشيف المركزي. يتم اختبار هذه التكوينات في محطة العمل قبل دفعها إلى Chef Server. تتكون محطة العمل من أداة سطر أوامر تسمى سكين، يستخدم للتفاعل مع Chef Server. يمكن أن يكون هناك العديد من محطات العمل التي تدير معًا خادم الشيف المركزي.

محطات العمل هي المسؤولة عن أداء الوظائف التالية:

  • كتابة كتب الطبخ والوصفات التي سيتم إرسالها لاحقًا إلى خادم الشيف المركزي
  • إدارة العقد على خادم الشيف المركزي

الآن ، دعونا نفهم النقاط المذكورة أعلاه واحدة تلو الأخرى.

كتابة كتب الطبخ والوصفات التي سيتم إرسالها لاحقًا إلى خادم الشيف المركزي

وصفات: الوصفة هي مجموعة من الموارد التي تصف تكوينًا أو سياسة معينة. يصف كل ما هو مطلوب لتكوين جزء من النظام. يكتب المستخدم وصفات تصف كيف يدير Chef التطبيقات والأدوات المساعدة (مثل Apache HTTP Server أو MySQL أو Hadoop) وكيفية تهيئتها.

تصف هذه الوصفات سلسلة من الموارد التي يجب أن تكون في حالة معينة ، مثل الحزم التي يجب تثبيتها أو الخدمات التي يجب تشغيلها أو الملفات التي يجب كتابتها.

لاحقًا في المدونة ، سأوضح لك كيفية كتابة وصفة لتثبيت حزمة Apache2 على Chef Nodes عن طريق كتابة كود روبي في Chef Workstation.

كتب الطبخ: يمكن تجميع الوصفات المتعددة معًا لتشكيل كتاب طبخ. يحدد كتاب الطبخ السيناريو ويحتوي على كل ما هو مطلوب لدعم هذا السيناريو:

  • الوصفات ، والتي تحدد الموارد المراد استخدامها والترتيب الذي سيتم تطبيقها به
  • قيم السمات
  • توزيعات الملفات
  • القوالب
  • امتدادات إلى Chef ، مثل المكتبات والتعريفات والموارد المخصصة

إدارة العقد على خادم الشيف المركزي

سيحتوي نظام محطة العمل على أدوات سطر الأوامر المطلوبة للتحكم في كل جانب من جوانب خادم Chef وإدارته. يمكن إدارة أشياء مثل إضافة عقدة جديدة إلى خادم الشيف المركزي ، وحذف العقدة من خادم الشيف المركزي ، وتعديل تكوينات العقدة وما إلى ذلك من محطة العمل نفسها.

الآن دعونا نرى ، ما هي مكونات محطة العمل المطلوبة لأداء الوظائف المذكورة أعلاه.

تتكون محطات العمل من عنصرين رئيسيين:

فائدة السكين: يمكن استخدام أداة سطر الأوامر هذه للتواصل مع خادم الشيف المركزي من محطة العمل. سيتم تنفيذ إضافة أو إزالة أو تغيير تكوينات العقد في خادم Chef مركزي باستخدام الأداة المساعدة Knife. باستخدام الأداة المساعدة Knife ، يمكن تحميل كتب الطبخ على خادم الطاهي المركزي والأدوار ، كما يمكن إدارة البيئات. في الأساس ، يمكن التحكم في كل جانب من جوانب خادم Chef المركزي من محطة العمل باستخدام أداة Knife.

مستودع شيف محلي: هذا هو المكان الذي يتم فيه تخزين كل مكون تكوين لخادم الشيف المركزي. يمكن مزامنة مستودع الشيف هذا مع خادم الشيف المركزي (مرة أخرى باستخدام أداة السكين نفسها).

دروس الشيف - خادم الشيف

يعمل Chef Server كمحور لبيانات التكوين. يقوم Chef Server بتخزين كتب الطبخ والسياسات المطبقة على العقد والبيانات الوصفية التي تصف كل عقدة مسجلة يديرها Chef-Client.

تستخدم العقد Chef-Client لتطلب من Chef Server الحصول على تفاصيل التكوين ، مثل الوصفات والقوالب وتوزيعات الملفات. يقوم Chef-Client بعد ذلك بأداء أكبر قدر ممكن من أعمال التكوين على العقد نفسها (وليس على خادم Chef). تحتوي كل عقدة على برنامج Chef Client مثبتًا ، والذي سيسحب التكوين من خادم Chef المركزي المطبق على تلك العقدة. يوزع هذا النهج القابل للتطوير جهد التكوين في جميع أنحاء المؤسسة.

دروس الشيف - عقد الشيف

يمكن أن تكون العقد خادمًا افتراضيًا قائمًا على السحابة أو خادمًا فعليًا في مركز البيانات الخاص بك ، والذي تتم إدارته باستخدام خادم Chef المركزي. المكون الرئيسي الذي يجب أن يكون موجودًا على العقدة هو الوكيل الذي سيؤسس الاتصال بخادم الشيف المركزي. هذا يسمى عميل الشيف.

يؤدي Chef Client الوظائف التالية:

  • وهي مسؤولة عن التفاعل مع خادم الشيف المركزي.
  • يدير التسجيل الأولي للعقدة في خادم الشيف المركزي.
  • يقوم بسحب كتب الطبخ ، وتطبيقها على العقدة ، لتكوينها.
  • استقصاء دوري لخادم الشيف المركزي لجلب عناصر التكوين الجديدة ، إن وجدت.

انقر هنا لمعرفة كيفية تثبيت Chef Server ومحطة العمل والعقدة

دروس الشيف - مزايا الشيف:

سيكون برنامج الشيف التعليمي هذا غير مكتمل إذا ، لم أقم بتضمين الفوائد الرئيسية للشيف:

  • يمكنك أتمتة بنية أساسية كاملة باستخدام Chef. يمكن الآن تنفيذ جميع المهام التي تم إجراؤها يدويًا عبر أداة Chef.
  • يمكنك تكوين آلاف العقد في غضون دقائق باستخدام Chef.
  • تعمل أتمتة الشيف مع غالبية عروض السحابة العامة مثل .
  • لن يقوم Chef بأتمتة الأشياء فحسب ، بل سيحافظ أيضًا على الأنظمة تحت الفحص المستمر ، ويؤكد أن النظام قد تم تكوينه في الواقع بالطريقة المطلوبة (يقوم Chef Agent / Client بهذه المهمة). إذا أخطأ شخص ما بتعديل ملف ، فسيقوم الشيف بتصحيحه.
  • يمكن تسجيل بنية تحتية كاملة في شكل مستودع شيف ، يمكن استخدامه كمخطط لإعادة إنشاء البنية التحتية من البداية.

أتمنى أن تكون قد استمتعت ببرنامج الشيف التعليمي هذا حتى الآن ، بما يكفي مع المشاركات النظرية! دعونا نحظى ببعض المرح مع التدريب العملي.

دروس الشيف | البدء مع الشيف | إدوريكا

دروس الشيف - التدريب العملي

سأشرح لك هنا كيفية إنشاء وصفة وكتاب طبخ ونموذج في محطة عمل الشيف. سأشرح لك أيضًا كيفية نشر كتاب طبخ من محطة العمل إلى Chef-Client (Chef Node).

أنا أستخدم صورتين إفتراضيتين إحداهما لمحطة عمل Chef والأخرى لـ Chef Node. بالنسبة إلى Chef Server ، سأستخدم الإصدار المستضاف من Chef (على السحابة). يمكنك أيضًا استخدام آلة فعلية لـ Chef Server أيضًا.

الخطوة 1: قم بتثبيت Chef DK (Development Kit) في محطة عمل Chef.

Chef DK عبارة عن حزمة تحتوي على جميع أدوات التطوير التي ستحتاجها عند تشفير Chef. هنا رابط التحميل الشيف DK .

هنا ، اختر نظام التشغيل الذي تستخدمه. أنا أستخدم CentOS 6.8 ، لذا سأضغط على ريد هات إنتربرايز لينكس .

انسخ الرابط وفقًا لإصدار CentOS الذي تستخدمه. أنا أستخدم CentOS 6 ، كما ترون لقد أبرزت في لقطة الشاشة أعلاه.

انتقل إلى محطة العمل الخاصة بك وقم بتنزيل Chef DK باستخدام الأمر wget والصق الرابط.

نفذ هذا:

wget https://packages.chef.io/stable/el/6/chefdk-1.0.3-1.el6.x86_64.rpm

ما هي الوظيفة الافتراضية في جافا

تم تنزيل الحزمة الآن. حان الوقت لتثبيت هذه الحزمة باستخدام rpm.

نفذ هذا:

دورة في الدقيقة -ivh chefdk-1.0.3-1.el6.x86_64.rpm

تم تثبيت Chef DK الآن في محطة العمل الخاصة بي.

الخطوة 2: قم بإنشاء وصفة في محطة العمل

دعونا نبدأ بإنشاء وصفة في محطة العمل واختبارها محليًا للتأكد من أنها تعمل.قم بإنشاء مجلد باسم chef-repo. يمكننا إنشاء وصفات داخل هذا المجلد.

نفذ هذا:

mkdir chef-repo cd chef-repo

في دليل chef-repo هذا ، سأُنشئ وصفة باسم edureka.rb. .rb هو الامتداد المستخدم للياقوت. سأستخدم محرر vim ، يمكنك استخدام أي محرر آخر تريده مثل gedit و emac و vi وما إلى ذلك.

نفذ هذا:

فيم edureka.rb

أضف هنا ما يلي:

file '/ etc / motd' content 'مرحبًا بك في Chef' end

هذه صecipe يكون dureka .rb ينشئ ملفًا باسم / etc / motd يحتوي على محتوى 'مرحبًا بك في Chef'.

بيانات المثيل لفئة جافا

الآن سأستخدم هذه الوصفة للتحقق مما إذا كانت تعمل.

نفذ - اعدم هذه:

الشيف تطبيق edureka.rb

لذلك يوجد ملف تم إنشاؤه في chef-repo يحتوي على محتوى مرحبا بكم في الشيف.

الخطوه 3: مodifying ملف الوصفة لتثبيت حزمة httpd

سأقوم بتعديل الوصفة لتثبيت حزمة httpd على محطة العمل الخاصة بي ونسخ ملف index.html إلى جذر المستند الافتراضي لتأكيد التثبيت. الإجراء الافتراضي لمورد الحزمة هو التثبيت ، وبالتالي لست بحاجة إلى تحديد هذا الإجراء بشكل منفصل.

نفذ - اعدم هذه:

فيم edureka.rb

أضف هنا ما يلي:

الحزمة 'httpd' service 'httpd' نفذ الإجراء [: enable،: start] end file '/var/www/html/index.html' do content 'مرحبًا بك في Apache in Chef' end

سأقوم الآن بتطبيق هذه التكوينات عن طريق تنفيذ الأمر التالي:

نفذ - اعدم هذه:

الشيف تطبيق edureka.rb

يصف تنفيذ الأمر بوضوح كل حالة في الوصفة. يقوم بتثبيت حزمة Apache ، ويمكّن ويبدأ خدمة httpd على محطة العمل. ويقوم بإنشاء ملف index.html في جذر المستند الافتراضي بالمحتوى 'مرحبًا بك في Apache in Chef'.

تأكد الآن من تثبيت Apache2 عن طريق فتح متصفح الويب الخاص بك. اكتب عنوان IP العام الخاص بك أو اسم مضيفك. في حالتي ، إنه مضيف محلي.

الخطوة الرابعة: الآن سنقوم بإنشاء أول كتاب طبخ خاص بنا.

قم بإنشاء دليل يسمى كتب الطبخ ، وقم بتنفيذ الأمر أدناه لإنشاء كتاب الطبخ.

نفذ - اعدم هذه:

mkdir كتب طبخ cd كتب طبخ طاه يولد كتاب طبخ httpd_deploy

httpd_deploy هو الاسم الذي يطلق على كتاب الطبخ. يمكنك إعطاء أي اسم تريده.

دعونا ننتقل إلى هذا الدليل الجديد httpd_deploy.

نفذ - اعدم هذه:

القرص المضغوط httpd_deploy

الآن دعونا نرى هيكل ملف كتاب الطبخ الذي تم إنشاؤه.

نفذ - اعدم هذه:

شجرة

الخطوة الخامسة: جأعد إنشاء ملف قالب.

في وقت سابق ، أنشأت ملفًا يحتوي على بعض المحتويات ، ولكن هذا لا يتناسب مع هياكل وصفاتي وكتاب الطبخ. لذلك دعونا نرى كيف يمكننا إنشاء نموذج لصفحة index.html.

نفذ - اعدم هذه:

الشيف إنشاء نموذج httpd_deploy index.html

الآن إذا رأيت هيكل ملف Cookbook الخاص بي ، فهناك مجلد تم إنشاؤه باستخدام قوالب الاسم باستخدام ملف index.html.erb. سأقوم بتحرير ملف النموذج index.html.erb وأضيف الوصفة الخاصة بي إليه. راجع المثال أدناه:

انتقل إلى الدليل الافتراضي

نفذ - اعدم هذه:

cd / root / chef-repo / cookbook / httpd_deploy / قوالب / افتراضي

من هنا ، قم بتحرير قالب index.html.erb باستخدام أي محرر يناسبك. سأستخدم محرر vim.

نفذ - اعدم هذه:

vim index.html.erb

أضف الآن ما يلي:

مرحبًا بكم في Chef Apache Deployment

الخطوة السادسة: جأعد إعداد وصفة مع هذا النموذج.

انتقل إلى دليل الوصفات.

قم بتنفيذ t له:

cd / root / chef-repo / cookbooks / httpd_deploy / recipes

الآن قم بتحرير ملف default.rb باستخدام أي محرر تريده. سأستخدم محرر vim.

نفذ - اعدم هذه:

vim default.rb

أضف هنا ما يلي:

الحزمة 'httpd' service 'httpd' نفذ الإجراء [: enable،: start] end template '/var/www/html/index.html' do source 'index.html.erb' end

الآن سأعود إلى مجلد chef-repo الخاص بي وأقوم بتشغيل / اختبار الوصفة الخاصة بي على محطة العمل الخاصة بي.

نفذ - اعدم هذه:

cd / root / chef-repo chef-client --local-mode --runlist 'recipe [httpd_deploy]'

وفقًا للوصفة الخاصة بي ، يتم تثبيت Apache على محطة العمل الخاصة بي ، ويتم بدء تشغيل الخدمة وتمكينها عند التمهيد. كما تم إنشاء ملف قالب على جذر المستند الافتراضي الخاص بي.

الآن بعد أن اختبرت محطة العمل الخاصة بي. حان الوقت لإعداد Chef Server.

الخطوة السابعة: إعداد خادم الشيف

سأستخدم الإصدار المستضاف من Chef Server على السحابة ولكن يمكنك أيضًا استخدام آلة فعلية. هذا الشيف خادم موجود في إدارة. chef.io

هنا قم بإنشاء حساب إذا لم يكن لديك حساب. بمجرد إنشاء حساب ، قم بتسجيل الدخول باستخدام بيانات اعتماد تسجيل الدخول الخاصة بك.

هكذا يبدو Chef Server.

إذا كنت تقوم بتسجيل الدخول لأول مرة ، فإن أول شيء ستفعله هو إنشاء منظمة. المنظمة هي في الأساس مجموعة من الآلات التي ستديرها باستخدام Chef Server.

أولاً ، سأنتقل إلى علامة تبويب الإدارة. هناك ، قمت بالفعل بإنشاء منظمة تسمى edu. لذلك أحتاج إلى تنزيل مجموعة أدوات بدء التشغيل في محطة العمل الخاصة بي. ستساعدك مجموعة المبتدئين هذه على نقل الملفات من محطة العمل إلى Chef Server. انقر على أيقونة الإعدادات على الجانب الأيمن وانقر على Starter Kit.

عندما تنقر هناك ستحصل على خيار لتنزيل Starter Kit. ما عليك سوى النقر فوقه لتنزيل ملف Starter Kit المضغوط.

انقل هذا الملف إلى الدليل الجذر الخاص بك.الآن قم بفك ضغط هذا الملف المضغوط باستخدام أمر unzip في جهازك الطرفي. ستلاحظ أنه يتضمن دليلاً يسمى chef-repo.

نفذ - اعدم هذه:

قم بفك ضغط chef-starter.zip

الفرق بين c ++ و java

الآن انقل مجموعة أدوات البدء هذه إلى دليل كتاب الطبخ في دليل chef-repo.

نفذ - اعدم هذه:

كاتب mv / الجذر / الشيف ريبو / كتاب الطبخ

تتوفر كتب Chef Cookbook في سوبر ماركت Cookbook ، ويمكننا الذهاب إلى Chef SuperMarket. قم بتنزيل كتب الطبخ المطلوبة من سوبر ماركت chef.io . أقوم بتنزيل أحد كتاب الطبخ لتثبيت Apache من هناك.

نفذ - اعدم ه ر ح يكون:

تحميل كتاب الطبخ cd chef-repo knife learn_chef_httpd

يتم تنزيل Tar ball من أجل Apache Cookbook. الآن ، نحتاج إلى استخراج المحتويات من ملف Tar الذي تم تنزيله. لذلك ، سأستخدم الأمر tar.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

يتم إنشاء جميع الملفات المطلوبة تلقائيًا ضمن كتاب الطبخ هذا. ليست هناك حاجة لإجراء أي تعديلات. دعنا نتحقق من وصف الوصفة داخل مجلد الوصفات.

قم بتنفيذ t ح يكون :

cd / root / chef-repo / learn_chef_httpd / وصفات cat default.rb

الآن ، سأقوم فقط بتحميل كتاب الطبخ هذا على Chef Server الخاص بي لأنه يبدو مثاليًا بالنسبة لي.

الخطوة الثامنة: قم بتحميل كتاب الطبخ على Chef Server.

لتحميل كتاب Apache Cookbook الذي قمت بتنزيله ، انقل أولاً ملف learn_chef_httpd إلى مجلد Cookbooks في chef-repo. ثم قم بتغيير الدليل الخاص بك إلى كتب الطبخ.

قم بتنفيذ t ح يكون :

mv / root / chef-repo / learn_chef_httpd / root / chef-repo / cookbooks

انتقل الآن إلى دليل كتب الطبخ هذا.

نفذ هذا:

كتب الطبخ cd

الآن في هذا الدليل ، قم بتنفيذ الأمر أدناه لتحميل Apache Cookbooإلى:

إكسيك ute ر ح يكون:

تحميل كتاب الطبخ السكين learn_chef_httpd

تحقق من كتاب الطبخ من وحدة تحكم إدارة خادم الشيف. في قسم السياسة ، ستجد كتاب الطبخ الذي قمت بتحميله. الرجوع إلى لقطة الشاشة أدناه:

الآن خطوتنا الأخيرة هي إضافة Chef Node. لقد قمت بإعداد محطة عمل وخادم طاهٍ والآن أحتاج إلى إضافة عملائي إلى خادم الشيف من أجل التشغيل الآلي.

الخطوة 9: إضافة عقدة الشيف إلى خادم الشيف.

لغرض العرض التوضيحي ، سأستخدم جهاز CentOS واحدًا كعقدة Chef. يمكن أن يكون هناك المئات من العقد متصلة بخادم طاهٍ واحد. يختلف اللون الطرفي لجهاز Node الخاص بي عن محطة العمل حتى تتمكن من التمييز بين كليهما.

أحتاج فقط إلى عنوان IP الخاص بـ Node الخاص بي لذلك سأقوم بتنفيذ الأمر أدناه في آلة Nodeيكون.

إكسيك ش ر يكون ر ح يكون:

ifconfig

سأضيف عقدة الطاهي الخاصة بي إلى الخادم عن طريق تنفيذ أمر Knife Bootstrap الذي سأحدد فيه عنوان IP الخاص بـ Chef Node واسمه. قم بتنفيذ الأمر الموضح بيلوفي:

إكسيك ute ر ح يكون:

سكين التمهيد 192.168.56.102 - جذر مستخدم ssh - كلمة مرور ssh edureka - اسم عقدة chefNode

سيقوم هذا الأمر أيضًا بتهيئة تثبيت Chef-Client في Chef Node. يمكنك التحقق من ذلك من CLI على محطة العمل باستخدام أمر السكين ، كما هو موضح بيلوفي:

إكسيك ute ر ح يكون:

قائمة عقدة السكين

يمكنك أيضًا التحقق من Chef Server. انتقل إلى علامة تبويب العقد في وحدة التحكم في إدارة الخادم ، وهنا ستلاحظ أن العقدة التي أضفتها موجودة. الرجوع إلى لقطة الشاشة أدناه.

الخطوة 10: إدارة قائمة تشغيل العقدة

دعونا نرى كيف يمكننا إضافة كتاب طبخ إلى Node وإدارة قائمة التشغيل الخاصة به من Chef Server. كما ترى في لقطة الشاشة أدناه ، انقر فوق علامة التبويب 'الإجراءات' وحدد خيار 'تحرير قائمة التشغيل' لإدارة قائمة التشغيل.

في الوصفات المتاحة ، يمكنك الاطلاع على وصفة learn_chef_httpd ، ويمكنك سحبها من الحزم المتاحة إلى قائمة التشغيل الحالية وحفظ قائمة التشغيل.

الآن قم بتسجيل الدخول إلى Node الخاص بك وقم فقط بتشغيل chef-client لتنفيذ Run Lisر.

إكسيك ute ر ح يكون:

العميل الرئيسي

أتمنى أن تكون قد استمتعت بهذا البرنامج التعليمي للشيف وتعلمت كيف يمكن استخدام الشيف لتهيئة مئات العقد. يلعب الشيف دورًا حيويًا في العديد من المؤسسات لتحقيق DevOps. مع منظمات الشيف ، يتم إطلاق التطبيقات بشكل متكرر ووثيقةبزجاج.

إذا وجدت هذه المدونة على ' الشيف التعليمي ' ذو صلة، تفحص ال من Edureka ، شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250.000 متعلم راضٍ منتشرين في جميع أنحاء العالم تساعد الدورة التدريبية لشهادة Edureka DevOps المتعلمين على اكتساب الخبرة في عمليات وأدوات DevOps المختلفة مثل Puppet و Chef و Jenkins و Nagios و GIT لأتمتة خطوات متعددة في SDLC.