سؤال

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

لذا، كيف يمكن للمرء أن يفعل هذا بالضبط؟ما هو برنامج VM الموصى به لهذا الغرض؟ما مقدار البرمجة النصية التي يجب القيام بها لتحقيق ذلك؟هل توجد أية مشكلات على وجه الخصوص عند استخدام Windows 2003 Server كنظام تشغيل هنا؟

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

المحلول

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

أولا، على حد سواء فيرتثلبوإكس وVMWare الخادم هي منتجات رائعة، ولأن كلا أحرار، كل واحدة بقيمة تقييم. لقد قررت أن أذهب مع برنامج VMWare خادم، لأنه منتج أكثر رسوخا ويمكننا الحصول على الدعم لذلك علينا أن تحتاج إليها. وهذا أمر مهم خصوصا اننا ندرس أيضا توزيع برنامجنا للعملاء كما VM بدلا من تثبيت ملقم خاص، على افتراض أن النفقات العامة من لاعب برنامج VMWare ليست مرتفعة جدا. أيضا، هناك واجهة برمجة برنامج VMWare دعا VIX التي يمكن للمرء أن استخدام لمباشرة تثبيت الملفات إلى VM دون الحاجة إلى تثبيت SSH أو SFTP، وهي ميزة كبيرة.

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

نصائح أخرى

بغض النظر عن برنامج VM (يمكنني أن أوصي بـ VirtualBox أيضًا) أعتقد أنك تنظر إلى السيناريو التالي:

  1. تم البناء
  2. يقوم CI بتشغيل الجهاز الظاهري (أو أنه قيد التشغيل دائمًا)
  3. يستخدم CI scp/sftp لتحميل التصميم إلى VM عبر الشبكة
  4. يستخدم CI ssh (إذا كان متاحًا على نظام التشغيل المستهدف الذي يعمل في VM) أو وسيلة أخرى لتنفيذ الأوامر عن بعد لبدء التثبيت في بيئة VM

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

في شروط التقديم شرائح VM جديدة ليبني الخاص بك، يمكنك ببساطة نسخ والماضي المجلد الذي يحتوي على ملفات برنامج VMWare، تغيير SID وIP من VM الجديد وكان لديك جهاز جديد. يستغرق 15 دقائق اعتمادا على حجم شريحة VM الخاص بك. لا البرمجة المطلوبة.

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

VBoxManage startvm "Windows 2003 Server" -type vrdp

نحن نستخدم Jenkins + Vagrant + Chef لهذا السيناريو.

لذلك يمكنك القيام بالعملية التالية:

  • يتحكم الإصدار في بيئة VM الخاصة بك باستخدام البرامج النصية للتوفير المتشرد (Chef أو Puppet)

  • قم ببناء نظامك باستخدام Jenkins/Hudson

  • قم بتشغيل البرنامج النصي Vagrant الخاص بك لجلب الإصدار الثابت الأخير من إخراج CI

  • احفظ حالة VM لإعادة استخدامها في المستقبل.

مرجع:

vagrantup.com

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

واختيار برنامج VMWare حاليا ليس خيارا سيئا.

ولكن، تماما مثل برنامج VMWare يعطي الدعم لخادم برنامج VMWare، SUN يعطي الدعم لفيرتثلبوإكس.

ويمكنك أيضا إنجاز هذه المهمة باستخدام برنامج VMWare الاستوديو، والذي هو أيضا حر. سير العمل الأساسي هو هذا: 1. إنشاء ملف XML الذي يصف الجهاز الظاهري 2. استخدام الاستوديو لخلق قذيفة. 3. استخدام برنامج VMWare خادم توفير الجهاز الظاهري.

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