قد تحتاج إلى إنشاء قالب في هذه الحالات:
- لإنقاذ مخدم افتراضي
- لإنشاء مخدم افتراضي يمكن الوصول إليه عبر SSH
- لإنشاء مخدم افتراضي قابل للتخصيص مع بيانات المستخدم
لتحضير قالب ، تحتاج إلى تثبيت cloud-init و OpenSSH Server في وحدة تخزين تمهيد موجودة ، ثم إنشاء صورة من وحدة التخزين هذه.
إعداد قوالب Linux
نظرًا لأن جميع ضيوف Linux لديهم OpenSSH Server مثبت مسبقًا بشكل افتراضي ، فأنت تحتاج فقط إلى التأكد من أن قالب Linux مثبت عليه cloud-init.
أسهل طريقة للحصول على قالب Linux مثبت عليه cloud-init هو الحصول عليه من مستودعه الرسمي. يمكنك أيضًا إنشاء قالب Linux من وحدة تخزين تمهيد موجودة.
إعداد قوالب Windows
ضيوف Windows ليس لديهم Cloudbase-Init أو OpenSSH Server مثبتين مسبقًا بشكل افتراضي. تحتاج إلى تثبيتها وتكوينها يدويًا.
لتثبيت Cloudbase-Init و OpenSSH Server داخل مخدم افتراضي يعمل بنظام Windows
- قم بتسجيل الدخول إلى مخدم Windows.
- قم بإنشاء حساب مسؤول جديد سيتم استخدامه لاتصالات SSH وقم بتسجيل الدخول باستخدامه.
- لتثبيت وإعداد OpenSSH Server:
- قم بتشغيل Windows PowerShell بامتيازات المسؤول وقم بتعيين سياسة التنفيذ “execution policy” على غير مقيد “unrestricted” لتتمكن من تشغيل البرامج النصية::
> Set-ExecutionPolicy Unrestricted
- قم بتنزيل OpenSSH Server (على سبيل المثال ، من مستودع GitHub) ، واستخرج الأرشيف في دليل C: Program Files ، ثم قم بتثبيته عن طريق تشغيل:
> & 'C:Program FilesOpenSSH-Win64install-sshd.ps1'
- ابدأ خدمة
sshd
واضبط نوع بدء التشغيل على “تلقائي” “Automatic”:> net start sshd > Set-Service sshd -StartupType Automatic
- افتح منفذ TCP 22 لخدمة OpenSSH في جدار حماية Windows:
- في أنظمة تشغيل Windows 8.1 و Windows Server 2012 والإصدارات الأحدث، قم بتشغيل
> New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName OpenSSH
- في أنظمة تشغيل Windows 7، Windows Server 2008، و Windows Server 2008 R2، قم بتشغيل
> netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
- في أنظمة تشغيل Windows 8.1 و Windows Server 2012 والإصدارات الأحدث، قم بتشغيل
- افتح ملف C:ProgramDatasshsshd_config :
> notepad 'C:ProgramDatasshsshd_config'
ضع تعليق بالأسطر التالية في نهاية الملف:
#Match Group administrators #AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
احفظ التغييرات.
- قم بإنشاء دليل .ssh في C:Users<current_user> وملف authorized_keys فارغ بداخله:
> cd C:Users<current_user> > mkdir .ssh > notepad ..sshauthorized_keys
قم بإزالة الامتداد .txt من الملف الذي تم إنشاؤه:
> move ..sshauthorized_keys.txt ..sshauthorized_keys
- عدّل أذونات الملف الذي تم إنشاؤه لتعطيل التوريث inheritance:
> icacls ..sshauthorized_keys /inheritance:r
- قم بتشغيل Windows PowerShell بامتيازات المسؤول وقم بتعيين سياسة التنفيذ “execution policy” على غير مقيد “unrestricted” لتتمكن من تشغيل البرامج النصية::
- قم بتنزيل Cloudbase-Init (على سبيل المثال ، من الموقع الرسمي) ، وابدأ التثبيت ، ثم اتبع التعليمات التي تظهر على الشاشة::
- في نافذة Configuration options، أدخل اسم المستخدم الحالي في حقل Username:
- عند اكتمال التثبيت ، لا تقم بتشغيل Sysprep وانقر فوق Finish.
- قم بتشغيل Windows PowerShell بامتيازات المسؤول وافتح الملف C:Program FilesCloudbase SolutionsCloudbase-Initconfcloudbase-init.conf:
> notepad 'C:Program FilesCloudbase SolutionsCloudbase-Initconfcloudbase-init.conf'
أضف
metadata_services
وplugins
على سطرين:metadata_services= cloudbaseinit.metadata.services.configdrive.ConfigDriveService, cloudbaseinit.metadata.services.httpservice.HttpService plugins=cloudbaseinit.plugins.common.mtu.MTUPlugin, cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin, cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin, cloudbaseinit.plugins.windows.createuser.CreateUserPlugin, cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin, cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin, cloudbaseinit.plugins.common.sshpublickeys.SetUserSSHPublicKeysPlugin, cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin, cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin, cloudbaseinit.plugins.common.userdata.UserDataPlugin, cloudbaseinit.plugins.windows.winrmlistener.ConfigWinRMListenerPlugin, cloudbaseinit.plugins.windows.winrmcertificateauth. ConfigWinRMCertificateAuthPlugin, cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin
احفظ التغييرات.
- في نافذة Configuration options، أدخل اسم المستخدم الحالي في حقل Username:
- قم بإيقاف المخدم.
- بعد إيقاف تشغيل المخدم ، قم بتحويل وحدة تخزين التمهيد الخاصة به إلى قالب ، كما هو موضح في إنشاء الصور من وحدات التخزين.