المقدمة
يتكون هذا الحل من برنامج نصي 'Setup' يتم تنفيذه على Gold Image قبل النسخ ونص 'Startup' يتم تشغيله على كل جهاز افتراضي مستنسخ أثناء بدء تشغيل النظام. ويتمثل الهدف الرئيسي لهذه البرامج النصية في ضمان تهيئة الخدمة بشكل صحيح مع تقليل التدخل اليدوي في نفس الوقت.
برنامج الإعداد النصي
وصف البرنامج النصي للإعداد
يتم تنفيذ النص التنفيذي الأول، 'setup'، على الصورة الذهبية قبل إستنساخها. يجب تنفيذه يدويا مرة واحدة فقط. والغرض الأساسي من هذا البرنامج هو إنشاء عمليات تهيئة أولية تسمح للبرنامج النصي التالي بالعمل بشكل صحيح على الأجهزة الافتراضية المستنسخة. وتتضمن هذه التكوينات ما يلي:
- تغيير بدء تشغيل خدمة Cisco AMP يدويا لتجنب التشغيل التلقائي.
- إنشاء مهمة مجدولة تقوم بتنفيذ البرنامج النصي التالي (بدء التشغيل) عند بدء تشغيل النظام بأعلى الامتيازات.
- إنشاء متغير بيئة نظام يسمى "AMP_GOLD_HOST" يقوم بتخزين اسم المضيف للصورة الذهبية. سيتم إستخدام ذلك من قبل البرنامج النصي لبدء التشغيل للتحقق مما إذا كان علينا إرجاع التغييرات
بعد تنفيذ برنامج الإعداد النصي، يمكننا التحقق من نشر تغييرات التكوين بنجاح
بما أننا قمنا بتنفيذ هذا الإجراء في الصورة الذهبية، فإن كل المثيلات الجديدة سيكون لها هذا التكوين وسيتم تنفيذ برنامج Startup Script عند بدء التشغيل.
إعداد رمز البرنامج النصي
rem Turn AMP to manual start
sc config CiscoAMP start=demand
rem Add host name to a system variable that we can check on startup
setx -m AMP_GOLD_HOST %COMPUTERNAME%
rem Add the startup script to the startup scripts
rem /rp password when there is a password
schtasks /create /tn "Startamp" /tr "C:\Users\chmilbur\Desktop\VMWareHorizonAMPStartup.bat" /sc onstart /rl highest /np
رمز البرنامج النصي للإعداد واضح جدا:
السطر 2: تغيير نوع بدء تشغيل خدمة حماية البرامج الضارة إلى يدوي.
ينشئ السطر 5 متغير بيئة جديد يسمى AMP_GOLD_HOST ويحفظ اسم المضيف للكمبيوتر الحالي فيه.
السطر 9: يقوم بإنشاء مهمة مجدولة باسم "Startamp" تقوم بتشغيل البرنامج النصي المحدد "Startup" أثناء بدء تشغيل النظام بأعلى الامتيازات، دون الحاجة إلى كلمة مرور.
برنامج بدء التشغيل
وصف برنامج بدء التشغيل النصي
يعمل البرنامج النصي الثاني، "بدء التشغيل"، على كل بدء تشغيل للنظام على الأجهزة الافتراضية المستنسخة. والغرض الأساسي من هذا الخيار هو التحقق مما إذا كان الجهاز الحالي يحمل اسم المضيف الخاص ب "الصورة الذهبية":
- إذا كانت الآلة الحالية هي الصورة الذهبية، لا يتم عمل وينتهي النص التنفيذي. سيستمر تشغيل AMP عند بدء تشغيل النظام نظرا لأننا نحافظ على المهمة المجدولة.
- إذا لم تكن الآلة الحالية هي الصورة "الذهبية"، فإن التغييرات التي تمت من قبل النص التنفيذي الأول يتم إعادة ضبطها:
- تغيير تكوين بدء تشغيل خدمة AMP من Cisco إلى تلقائي.
- بدء تشغيل خدمة AMP من Cisco.
- إزالة متغير بيئة "amp_gold_host".
- حذف المهمة المجدولة التي تقوم بتنفيذ البرنامج النصي لبدء التشغيل وحذف البرنامج النصي نفسه.
إعداد رمز البرنامج النصي
echo "Current hostname: %COMPUTERNAME% vs %AMP_GOLD_HOST%"
if "%COMPUTERNAME%" == "%AMP_GOLD_HOST%" ( goto same ) else ( goto notsame )
:same
rem Do nothing as we are still the golden image name
goto exit
:notsame
rem Turn AMP to autostart
sc config CiscoAMP start=auto
rem Turn on AMP
sc start CiscoAMP
rem Remove environment variable
REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V AMP_GOLD_HOST
schtasks /delete /tn Startamp
goto exit
:exit
السطر 2: يقارن اسم المضيف الحالي بقيمة "AMP_GOLD_HOST" المخزنة؛ فإذا كان كلاهما متماثلين، ينتقل النص التنفيذي إلى نفس التسمية، وإلا ينتقل إلى علامة "notsame".
السطر 4-6: عندما يتم الوصول إلى العلامة "نفسه"، فإن النص التنفيذي لا يفعل شيئا لأنه لا يزال الصورة الذهبية ويتحرك إلى علامة "الخروج".
السطر 8-16: إذا تم الوصول إلى علامة "notsame"، فإن النص التنفيذي يقوم بالإجراءات التالية:
- تغيير نوع بدء تشغيل خدمة الحماية من البرامج الضارة إلى "تلقائي".
- بدء تشغيل خدمة حماية البرامج الضارة.
- إزالة متغير بيئة "AMP_GOLD_HOST".
- يحذف المهمة المجدولة المسماة "startamp"
القرار
يتيح هذان النظامان السيناريان بدء تشغيل خدمة Cisco AMP في بيئات الأجهزة الظاهرية المنسوخة. من خلال تكوين الصورة الذهبية بشكل صحيح واستخدام البرامج النصية لبدء التشغيل، فإنها تضمن تشغيل بروتوكول AMP من Cisco على جميع الأجهزة الافتراضية المنسوخة باستخدام التكوين الصحيح