سؤال

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

chef.add_recipe "gitlab::core_prereq"
chef.add_recipe "postfix"
chef.add_recipe "gitlab::users_prereq"
chef.add_recipe "rvm::vagrant"
chef.add_recipe "rvm::system"
chef.add_recipe "ohai"
chef.add_recipe "nginx"
chef.add_recipe "gitlab::python_tools_prereq"
chef.add_recipe "gitlab::gitolite_prereq"
chef.add_recipe "gitlab::gitlab_install"

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

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

هل كانت مفيدة؟

المحلول

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

في حالتك أعتقد ذلك gitlab::gitlab_install يتطلب gitlab::gitolite_prereq و gitlab::python_tools_prereq.هذا يعني أنه يجب عليك إضافة إلى الخاص بك cookbooks/gitlab/recipes/gitlab_install.rb:

incude_recipe 'gitlab::gitolite_prereq'
incude_recipe 'gitlab::python_tools_prereq'

يمكنك أيضًا تضمين وصفات من كتب الطبخ الأخرى بهذه الطريقة.على سبيل المثال أوهاي يتطلب rvm :: النظام.اضف إليه cookbooks/ohai/recipes/default.rb:

incude_recipe 'rvm::system'

وإضافة إلى cookbooks/ohai/metadata.rb:

depends 'rvm'

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top