Skip to Content
Getting Startedفهم الوصفات

فهم الوصفات

BuildRecipe هو المواصفة المطبّعة التي يرسلها OpenFactory إلى مسار الصورة. يمكن أن تساعد المحادثة في تأليفها، لكن الوصفة ولقطات المصدر والملفات المولَّدة وأدلة الاختبار هي ما يعرّف البناء.

النموذج الذهني

للوصفة القانونية أربع طبقات رئيسة:

  1. الهوية والهدف: الاسم، والوصف، وصورة الأساس، وقصد العتاد.
  2. نظام التشغيل: الميزات، والحزم، والخدمات، والمستخدمون، والأمن، وسطح المكتب، والمثبّت، والمرفقات، وسكربتات بدء التشغيل تحت os.
  3. التحقق: سيناريو واحد أو أكثر مع اختبارات مدمجة وتحققات مخصصة.
  4. قصد التسليم: وجهات النشر المطلوبة وإعدادات التسليم الاختيارية.
{ "name": "debian-web-check", "display_name": "Debian Web Check", "description": "Small Debian image with explicit smoke tests.", "base_image": "debian-trixie", "hardware": { "platform": "pc", "architecture": "x86_64", "min_cpu_cores": 2, "min_memory_gb": 4, "min_storage_gb": 16, "nic_count": 1 }, "os": { "features": ["ssh"], "packages": ["curl"], "services": [ { "name": "ssh", "enabled": true, "config": {"port": 22, "disable_password_auth": true} } ], "security": { "hardening_level": "standard", "audit_logging": true } }, "scenarios": [ { "id": "primary-smoke", "name": "Primary image smoke test", "enabled": true, "tests": ["boot", "login", "packages"] } ], "publish_to": ["local"] }

استخدم snake_case. يجب ألا ترسل التكاملات الجديدة أشكالا قديمة مثل baseImage، أو features في المستوى الأعلى، أو startupScripts.

ثلاثة فحوصات، ثلاثة أجوبة مختلفة

التحقق من المخطط

يجيب التحقق: «هل للبيانات المعترف بها شكل مقبول؟» لا يثبت وجود الحزم أو عمل السلوك. بعض الحقول غير المعروفة تُتجاهل للتوافق، لذا يمكن لنجاح التحقق أن يحذف مع ذلك طلبا مهما.

قارن دائما الوصفة المطبّعة المعادة مع المحادثة والمتطلبات الأصلية. سطح مكتب أو تطبيق أو مثبّت أو مرفق أو اختبار ناقص عيب في الوصفة حتى إذا قال التحقق valid.

أدلة البناء

يجيب البناء الناجح: «هل أنتج المسار مخرجا؟» لا يثبت أن كل ميزة مقصودة دخلت الصورة. افحص جرد الحزم، وأصل المصدر، والتحذيرات، وأدلة مراحل البناء.

تحقق الضيف

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

إعدادات الأمن قصد

قيم hardening_level المقبولة هي minimal وstandard وstrict، لكن تلك التسميات ليست ملفات امتثال قابلة للنقل. مولّدات الهدف يمكن أن تفسرها بشكل مختلف. إذا كنت تحتاج معيارا، اختر المعيار المنطبق بدقة واحتفظ بنتائج كل عنصر تحكم؛ لا تستنتج توافق CIS من strict.

بالمثل، disk_encryption وaudit_logging وSELinux وfail2ban وSecure Boot وdm-verity وإعدادات المثبّت تتطلب اختبارات مخرج وتشغيل مطابقة.

ملكية المحادثة والوصفة

عندما تتحقق من وصفة مؤلَّفة بالمحادثة أو تعدّلها، تبقى المحادثة القائمة جزءا من سياق التأليف. ينبغي أن ينقّح التحقق الوصفة الحالية، لا أن يستبدلها بصمت بافتراضي عام. ومع ذلك، الوصفة المطبّعة هي نقطة الفحص النهائية قبل البناء.

لكل متطلب جوهري:

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

قائمة مراجعة

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

انظر مخطط الوصفة لمرجع الحقول وأول بناء لك لمسار البناء والتنزيل.