Chef 12



chef

نظرة عامة على الشيف

مرحبًا بك في الشيف!

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

يوضح هذا الرسم البياني كيفية تطوير واختبار ونشر شفرة الشيف الخاصة بك.

مكونات الشيف

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

الشيف لديه المكونات الرئيسية التالية:

مكون وصف

تم تكوين محطة عمل واحدة (أو أكثر) للسماح للمستخدمين بتأليف واختبار وصيانة كتب الطبخ. يتم تحميل كتب الطبخ إلى خادم الشيف من محطة العمل. بعض كتب الطبخ مخصصة للمؤسسة ، والبعض الآخر يعتمد على كتب طبخ المجتمع المتاحة من سوبرماركت الشيف.

روبي هي لغة البرمجة التي هي صياغة التأليف لكتب الطبخ. معظم الوصفات هي أنماط بسيطة (الكتل التي تحدد الخصائص والقيم التي تعينها لعناصر تكوين معينة مثل الحزم والملفات والخدمات والقوالب والمستخدمين). القوة الكاملة لروبي متاحة عندما تحتاج إلى لغة برمجة.

في كثير من الأحيان ، يتم تكوين محطة عمل لاستخدام مجموعة تطوير الشيف كأداة التطوير. مجموعة تطوير الشيف هي مجموعة من الشيف توفر مجموعة اختيارية (ولكنها موصى بها) من الأدوات ، بما في ذلك الشيف نفسه ، أداة سطر الأوامر الخاصة بالطاهي ، المطبخ ، ChefSpec ، Berkshelf ، وأكثر من ذلك.

العقدة هي أي جهاز - فعلي ، أو افتراضي ، أو سحابي ، أو جهاز شبكة ، إلخ. - تحت إدارة الشيف.

يتم تثبيت عميل الطاهي على كل عقدة تحت إدارة الشيف. يقوم عميل chef بإجراء جميع مهام التهيئة المحددة بواسطة قائمة التشغيل وسيقوم بسحب أي بيانات تهيئة مطلوبة من خادم Chef أثناء الحاجة إليها أثناء تشغيل برنامج Chef-client.

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

يقوم عميل chef-client بالوصول إلى خادم Chef من العقدة التي تم تثبيتها للحصول على بيانات التهيئة ، وإجراء عمليات بحث عن بيانات تشغيل عميل الطاهي التاريخي ، ثم سحب بيانات التهيئة الضرورية. بعد انتهاء تشغيل عميل الشيف ، يقوم الشيف-العميل بتحميل بيانات التشغيل المحدثة إلى خادم الشيف ككائن العقدة المحدّث.

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

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

قد يتم تثبيت كافة الميزات المتميزة لخادم الشيف - وحدة تحكم إدارة الشيف ، وتحليلات الشيف ، وإعداد تقارير تشغيل عميل الشيف ، وتكوينات التوفر العالية ، ونسخ خادم الخوادم - وتهيئتها للاستخدام مع خادم الشيف. يتم تمكين كل من هذه الميزات الممتازة بسهولة ويمكن تشغيلها كجزء من نشر أي ملقم Chef!

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

محطات العمل

محطة العمل هي جهاز كمبيوتر تم تكوينه لتشغيل أدوات سطر الأوامر الشيف المتنوعة التي تتم مزامنتها مع chef-repo ، و cookbooks للمؤلف ، والتفاعل مع خادم Chef ، والتفاعل مع العقد.

محطة العمل هي الموقع الذي يقوم معظم المستخدمين بمعظم أعمالهم ، بما في ذلك:

  • تطوير كتب الطبخ والوصفات (وتأليفها باستخدام قواعد وأنماط روبي)
  • الحفاظ على تزامن طاه-ريبو مع التحكم في مصدر الإصدار
  • باستخدام أدوات سطر الأوامر
  • تكوين السياسة التنظيمية ، بما في ذلك تحديد الأدوار والبيئات وضمان تخزين البيانات الهامة في أكياس البيانات
  • التفاعل مع العقد ، كما (أو متى) المطلوبة ، مثل إجراء عملية bootstrap

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

أدوات

تتضمن بعض المكونات المهمة لمحطات العمل ما يلي:

مكون وصف

مجموعة تطوير الشيف هي مجموعة تحتوي على كل ما هو مطلوب لبدء استخدام الشيف:

  • الشيف العميل
  • طاه
  • Ohai
  • طاه الصفر
  • أدوات اختبار مثل Kitchen و ChefSpec و Foodcritic
  • السياسة ، بما في ذلك ملفات السياسة
  • توفير الشيف
  • كل شيء آخر يحتاج إلى تأليف كتب الطبخ وتحميلها إلى خادم الشيف

يشمل الشيف اثنين من أدوات سطر الأوامر الهامة:

  • استخدم أداة سطر الأوامر chef للتعامل مع العناصر الموجودة في chef-repo ، وهو الموقع الأساسي الذي يتم فيه كتابة كتب الطبخ واختبارها وصيانتها ، ومن أي سياسة يتم تحميلها إلى خادم Chef
  • استخدم أداة سطر الأوامر سكين للتفاعل مع العقد أو العمل مع الكائنات على الملقم Chef

إن chef-repo هو هيكل المخزون الذي يتم فيه كتابة كتب الطبخ واختبارها وصيانتها:

  • تحتوي كتب الطبخ على وصفات ، وسمات ، وموارد مخصصة ، ومكتبات ، وتعريفات ، وملفات ، وقوالب ، واختبارات ، وبيانات وصفية
  • يجب أن تتم مزامنة chef-repo مع نظام التحكم في الإصدار (مثل git) ، ثم تتم إدارتها كما لو كانت شفرة المصدر

يختلف هيكل الدليل في الشيف-ريبو. تفضل بعض المنظمات الاحتفاظ بكافة كتب الطبخ الخاصة بها في طباخ واحد ، في حين تفضل منظمات أخرى استخدام الشيف-ريبو لكل كتاب طهي.

استخدم Kitchen لاختبار بيانات كتاب الطبخ تلقائيًا عبر أي مجموعة من الأنظمة الأساسية وأجنحة الاختبار:

  • معرف في ملف .kitchen.yml
  • يستخدم هندسة البرنامج المساعد للسائق
  • يدعم اختبار كتاب الطبخ عبر العديد من مقدمي الخدمات السحابية والتقنيات الافتراضية
  • يدعم جميع أطر الاختبار الشائعة التي يستخدمها مجتمع روبي
  • يستخدم مجموعة شاملة من الصور الأساسية التي تقدمها Bento

استخدم ChefSpec لمحاكاة تقارب الموارد على العقدة:

  • يدير الشيف العميل على الجهاز المحلي
  • يستخدم الطباخ-صفر أو الشيف-المنفرد
  • هو امتداد ل RSpec ، وهو إطار تطوير يحركه السلوك (BDD) لروبي
  • هي أسرع طريقة لاختبار الموارد والوصفات

كتب الطبخ

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

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

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

المكونات

تتألف كتب الطبخ من المكونات التالية:

مكون وصف
يمكن تعريف سمة في كتاب طهي (أو وصفة) ثم استخدامها لتجاوز الإعدادات الافتراضية على العقدة. عندما يتم تحميل كتاب طبخ أثناء تشغيل عميل chef ، تتم مقارنة هذه السمات بالسمات الموجودة بالفعل على العقدة. يتم أولاً تحميل السمات التي تم تعريفها في ملفات السمات وفقًا لترتيب cookbook. لكل كتاب طبخ ، يتم تحميل السمات في الملف default.rb أولاً ، ثم يتم تحميل ملفات السمات الإضافية (إذا كانت موجودة) بترتيب تصنيف معجمي. عندما يكون لسمات cookbook الأسبقية على السمات الافتراضية ، سيقوم عميل chef-client بتطبيق هذه الإعدادات والقيم الجديدة أثناء تشغيل عميل chef على العقدة.
استخدم مورد cookbook_file لنقل الملفات من دليل فرعي لـ COOKBOOK_NAME/files/ إلى مسار محدد موجود على مضيف يقوم بتشغيل عميل chef. يتم اختيار الملف وفقًا لخصوصية الملف ، مما يسمح باستخدام ملفات المصدر المختلفة استنادًا إلى اسم المضيف أو النظام الأساسي المضيف (نظام التشغيل أو التوزيعة أو حسب الاقتضاء) أو إصدار النظام الأساسي. يمكن استخدام الملفات الموجودة في COOKBOOK_NAME/files/default sub-directory على أي نظام أساسي.
تسمح المكتبة بإدراج رمز روبي التعسفي في كتاب طهي ، إما كطريقة لتوسيع الفصول المضمنة إلى رئيس الطباخ - Chef::Recipe ، على سبيل المثال - أو لتنفيذ وظيفة جديدة تمامًا ، تشبه خلط في روبي. ملف المكتبة هو ملف Ruby الموجود داخل دليل cookbook /libraries . نظرًا لأنه يتم إنشاء مكتبة باستخدام Ruby ، ​​فإن أي شيء يمكن إجراؤه باستخدام Ruby يمكن إجراؤه في ملف مكتبة.
كل كتاب طبخ يتطلب كمية صغيرة من البيانات الوصفية. يوجد ملف يسمى metadata.rb في أعلى كل بنية دليل cookbook. توفر محتويات ملف metadata.rb تلميحات إلى خادم Chef للمساعدة على التأكد من نشر كتب الطبخ لكل عقدة بشكل صحيح.

تعتبر الوصفة هي أكثر عناصر التكوين الأساسية داخل المنظمة. وصفة:

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

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

The Recipe DSL هو DSL روبي يستخدم في المقام الأول لإعلان الموارد من داخل الوصفة. يساعد Recipe DSL أيضًا على ضمان تفاعل الوصفات مع العقد (وخصائص العقدة) بالطريقة المطلوبة. تستخدم معظم الطرق في Recipe DSL لإيجاد معلمة معينة ثم إخبار العميل ما هي الإجراءات (الإجراءات) التي يجب اتخاذها ، بناءً على ما إذا كانت هذه المعلمة موجودة على عقدة.

المورد عبارة عن بيان لسياسة التكوين التي:

  • يصف الحالة المطلوبة لعنصر التكوين
  • يعلن الخطوات اللازمة لإحضار هذا العنصر إلى الحالة المطلوبة
  • يحدد نوع مورد - مثل package أو template أو service
  • يسرد تفاصيل إضافية (تُعرف أيضًا باسم خصائص المورد) ، حسب الضرورة
  • يتم تجميعها في وصفات ، والتي تصف تكوينات العمل

عندما يمثل المورد جزءًا من النظام (وحالته المرغوبة) ، يحدد الموفر الخطوات اللازمة لإحضار جزء النظام هذا من حالته الحالية إلى الحالة المطلوبة.

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

قالب طبخ هو قالب Ruby (ERB) مضمن يتم استخدامه لإنشاء ملفات نصية ثابتة بشكل ديناميكي. قد تحتوي القوالب على تعبيرات وعبارات Ruby ، ​​وهي طريقة رائعة لإدارة ملفات التكوين. استخدم مورد القالب لإضافة قوالب Cookbook إلى الوصفات ؛ ضع ملف قالب Ruby (ERB) المطابق المناظر في دليل cookbook's /templates .
اختبار كتب الطبخ يحسن جودة كتب الطبخ تلك من خلال التأكد من أنهم يقومون بما يفترض بهم القيام به وأنهم يتم تأليفهم بطريقة متسقة. اختبار وحدة والتكامل بالتحقق من صحة وصفات في كتب الطبخ. يختبر اختبار البنية - الذي يُسمى غالبًا الفحص - جودة الشفرة نفسها. الأدوات التالية هي أدوات شعبية تستخدم لاختبار وصفات الشيف: المطبخ ، ChefSpec ، و Foodcritic.

العقد

العقدة هي أي جهاز - فعلي ، أو افتراضي ، أو سحابي ، أو جهاز شبكة ، إلخ. - تحت إدارة الشيف.

أنواع العقدة

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

نوع العقدة وصف
عادة ما تكون العقدة المادية خادمًا أو جهازًا ظاهريًا ، ولكن يمكن أن يكون أي جهاز نشط متصل بشبكة قادرة على إرسال واستقبال وإعادة توجيه المعلومات عبر قناة اتصالات. بعبارة أخرى ، العقدة المادية هي أي جهاز نشط متصل بشبكة يمكنها تشغيل عميل طاهي وتسمح أيضًا للطاهي العميل بالاتصال بخادم شيف.
تتم استضافة عقدة مستندة إلى مجموعة النظراء في خدمة خارجية تستند إلى السحاب ، مثل Amazon Web Services (AWS) أو OpenStack أو Rackspace أو Google Compute Engine أو Microsoft Azure. تتوفر المكونات الإضافية للسكين التي توفر الدعم للخدمات المستندة إلى السحاب الخارجي. سكين يمكن استخدام هذه الإضافات لإنشاء مثيلات على الخدمات المستندة إلى مجموعة النظراء. بمجرد إنشائه ، يمكن استخدام عميل الطاهي لنشر هذه الحالات وتكوينها وصيانتها.
العقدة الافتراضية هي آلة يتم تشغيلها فقط كتطبيق برمجي ، ولكنها تتصرف بشكل يشبه الجهاز المادي.
عقدة الشبكة هي أي جهاز شبكة - تبديل ، جهاز توجيه - تتم إدارته بواسطة عميل طباخ ، مثل أجهزة الشبكات من قبل Juniper Networks و Arista و Cisco و F5. استخدم الشيف لأتمتة عمليات تكوين الشبكة الشائعة ، مثل خصائص وصلة إيثرنت المادية والمنطقية وشبكات VLAN ، على هذه الأجهزة.
تعتبر الحاويات أسلوبًا للمحاكاة الافتراضية يسمح لنظام تشغيل واحد باستضافة العديد من تكوينات العمل ، حيث يتم تعيين كل تهيئة عمل - حاوية - مسؤولية واحدة معزولة عن جميع المسؤوليات الأخرى. تحظى الحاويات بشعبية كطريقة لإدارة التطبيقات والخدمات الموزعة والقابلة للتوسعة.

الشيف على العقد

المكونات الرئيسية للعقد التي هي تحت إدارة الشيف تشمل:

مكون وصف

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

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

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

Ohai هي أداة تستخدم للكشف عن السمات على عقدة ، ومن ثم تقديم هذه السمات إلى العميل الشيف في بداية كل تشغيل عميل الشيف. مطلوب Ohai من قبل العميل الشيف ويجب أن تكون موجودة على عقدة. (يتم تثبيت Ohai على عقدة كجزء من عملية تثبيت العميل والشيف.)

تتضمن أنواع سمات Ohai collects (على سبيل المثال لا الحصر):

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

الخصائص التي يتم تجميعها بواسطة Ohai هي سمات تلقائية ، حيث يتم استخدام هذه السمات من قبل العميل - الطاهي للتأكد من أن هذه الخصائص تظل دون تغيير بعد الانتهاء من تكوين العميل.

خادم الشيف

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

خاصية وصف
تسمح فهرسة البحث بإجراء الاستعلامات لأي نوع من البيانات المفهرسة بواسطة خادم Chef ، بما في ذلك أكياس البيانات (وعناصر حقيبة البيانات) والبيئات والعقد والأدوار. يتم استخدام صيغة استعلام معرّفة لدعم أنماط البحث مثل الدقيق ، وحرف البدل ، والنطاق ، والغموض. البحث عبارة عن استعلام نصي كامل يمكن تنفيذه من عدة مواقع ، بما في ذلك من داخل وصفة ، باستخدام مفتاح search الفرعي بالسكين ، وطريقة search في Recipe DSL ، ومربع البحث في وحدة تحكم إدارة الطيف ، وباستخدام نقاط /search/INDEX أو /search/INDEX في واجهة برمجة تطبيقات خادم الشيف. ويستند محرك البحث على Apache Solr ويتم تشغيله من خادم Chef.

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

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

سياسات

تعمل السياسة على تخطيط متطلبات الأعمال والتشغيلية والعملية وسير العمل إلى الإعدادات والكائنات المخزنة على خادم الشيف:

  • تحدد الأدوار أنواع الخادم ، مثل "خادم الويب" أو "خادم قاعدة البيانات"
  • تحدد البيئات العملية ، مثل "dev" أو "staging" أو "production"
  • يمكن وضع أنواع معينة من البيانات - كلمات المرور وبيانات حساب المستخدم والعناصر الحساسة الأخرى - في أكياس البيانات ، الموجودة في منطقة فرعية آمنة على خادم الشيف لا يمكن الوصول إليها إلا من خلال عقد مصادقة إلى خادم الطاهي. شهادات SSL الصحيحة
  • كتب الطبخ (ونسخ كتب الطبخ) التي يتم فيها الحفاظ على سياسات التكوين الخاصة بالمنظمة

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

خاصية وصف
الدور هو طريقة لتعريف أنماط وعمليات معينة موجودة عبر العقد في مؤسسة على أنها تنتمي إلى وظيفة مهمة واحدة. يتكون كل دور من صفات (أو أكثر) و قائمة تشغيل. يمكن أن يكون لكل عقدة دور (أو أكثر) مخصص لها. عندما يتم تشغيل دور مقابل عقدة ، تتم مقارنة تفاصيل تكوين تلك العقدة مع سمات الدور ، ثم يتم تطبيق محتويات قائمة التشغيل الخاصة بهذا الدور على تفاصيل تكوين العقدة. عند تشغيل عميل chef ، فإنه يدمج سماته الخاصة وقوائم التشغيل مع تلك الموجودة داخل كل دور معين.
البيئة هي طريقة لتخطيط سير العمل الحقيقي في المؤسسة لما يمكن تهيئته وإدارته عند استخدام خادم Chef. تبدأ كل مؤسسة ببيئة واحدة تسمى بيئة _default ، والتي لا يمكن تعديلها (أو حذفها). يمكن إنشاء بيئات إضافية لتعكس أنماط وسير العمل لكل مؤسسة. على سبيل المثال ، إنشاء بيئات production والتجهيز testing development . بشكل عام ، ترتبط بيئة أيضًا بإصدار واحد (أو أكثر) من إصدارات كتاب الطبخ.

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

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

تحدد قائمة التشغيل كل المعلومات اللازمة للشيف لتكوين عقدة في الحالة المطلوبة. قائمة التشغيل هي:

  • قائمة مرتبة من الأدوار و / أو الوصفات التي يتم تشغيلها بالترتيب المحدد في قائمة التشغيل ؛ إذا ظهرت وصفة أكثر من مرة واحدة في قائمة التشغيل ، فلن يقوم الشيف-العميل بتشغيلها مرتين
  • دائما محددة للعقدة التي تعمل عليها ؛ قد تحتوي العقد على قائمة تشغيل تتطابق مع قائمة التشغيل المستخدمة بواسطة العقد الأخرى
  • تخزين كجزء من كائن العقدة على خادم الشيف
  • الحفاظ على استخدام السكين ، ثم تحميلها من محطة العمل إلى خادم الشيف ، أو يتم الاحتفاظ باستخدام وحدة تحكم إدارة الشيف

تحليلات

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

يشمل برنامج تحليلات الشيف ما يلي:

خاصية وصف
الإجراءات هي تغييرات سياسية وإدارية يتم إجراؤها على خادم Chef. يجمع خادم الطيف الكثير من البيانات — كل كائن عقدة ، وسيرة تشغيل العقد لجميع العقد ، وتاريخ كل كتاب طهي وإصدار كتاب طهي ، وكيفية تطبيق إعدادات السياسة ، مثل الأدوار ، والبيئات ، وأكياس البيانات ، وما يتم تطبيقها ، وبيانات المستخدم الفردية ، وهلم جرا.

يتضمن برنامج Analytics Analytics نظامًا فعالًا لمعالجة القواعد يسمح بإصدار إشعارات استنادًا إلى الأحداث المرصودة في تدفق البيانات ، مثل:

  • تحميل كتاب الطبخ
  • تعديلات على البيئات
  • الآلات التي يعمل عليها عميل chef قد فشلت
  • فشلت الآلات التي يعمل وضع التدوين
  • الموارد التي تم تحديثها نتيجة لتشغيل الشيف العميل

قد يتم إرسال الإشعارات إلى أي عنوان بريد إلكتروني ، أو خدمة دردشة مثل HipChat أو Slack ، أو إلى خدمة تستند إلى Webhook لإجراء عمليات دمج عامة.

يتم استخدام التقارير لتتبع ما حدث أثناء تنفيذ تشغيل عميل الشيف عبر جميع البنية التحتية التي يديرها الشيف. يمكن إنشاء تقارير للمؤسسة بأكملها ويمكن إنشاؤها للعقد المحددة.
التحكم هو اختبار مؤتمت مدمج في كتاب طهي ، ثم يستخدم لاختبار حالة النظام للامتثال. الامتثال يمكن أن يكون أشياء كثيرة. على سبيل المثال ، التأكد من أن إدارة الملفات والمجلدات تلبي سياسات تقنية معلومات داخلية محددة - "هل يوجد الملف؟" ، "هل يحق للمستخدمين أو المجموعات الصحيحة الوصول إلى هذا الدليل؟". وقد يكون الامتثال معقدًا أيضًا ، مثل المساعدة في ضمان تحقيق الأهداف المحددة بواسطة أطر الامتثال على نطاق واسع مثل PCI و HIPAA و Sarbanes-Oxley.

استنتاج

الشيف هو DSL (لغة محددة المجال) رقيقة بنيت على رأس روبي. يسمح هذا الأسلوب للشيف بتوفير ما يكفي من التجريد لتسهيل التفكير في البنية الأساسية الخاصة بك. يشمل الشيف تصنيفًا مدمجًا لكل الموارد الأساسية التي يمكن تكوينها على النظام ، بالإضافة إلى آلية محددة لتوسيع هذا التصنيف باستخدام القوة الكاملة للغة Ruby. تم اختيار Ruby لأنه يوفر المرونة لاستخدام كل من التصنيف البسيط ، بالإضافة إلى قدرته على التعامل مع أي مسار تخصيص تتطلبه مؤسستك.