إنشاء آلة افتراضية ممل. إنشاء المئات يستغرق وقتًا طويلاً. يتيح لك cloud-init أتمتة إنشاء آلة افتراضية في Microsoft Azure.

إذا سبق لك أن قمت بإعداد جهاز افتراضي ، فأنت تعرف كيف يعمل. انقر هنا وهناك ، انقر فوق طريقك أكثر ، وفي النهاية ، لديك نظام تم إعداده. ولكن لا يزال يتعين عليك تثبيت البرنامج وتكوين الجهاز الظاهري وفقًا لتفضيلاتك.

تخيل الآن أنك تريد إعداد مئات الأجهزة الافتراضية. النقر في طريقك خلال التثبيت ليس بهذه الفعالية. بدلاً من ذلك ، تحتاج إلى أتمتة العملية قدر الإمكان ، وهنا يأتي دور cloud-init.

دعنا نلقي نظرة على كيفية أتمتة تثبيت نظام التشغيل وتكوين الجهاز الظاهري باستخدام السحابة الأولية في Microsoft Azure.

لماذا استخدام cloud-init لأتمتة إنشاء VM؟

تعد cloud-init أداة أتمتة نشر قوية تطورها Canonical ، الشركة التي تقف وراء Ubuntu.

باستخدام cloud-init ، يمكنك تثبيت ونشر أنظمة تشغيل Linux وتكوين جوانب أخرى من VM. على سبيل المثال ، يمكنك استخدام cloud-init لإعداد حسابات المستخدمين ، تثبيت البرامج وتكوينها ، إضافة مفاتيح SSH ، سمها ما شئت.

في الوقت الحالي ، يدعم معظم موفري الخدمات السحابية مثل Azure و Linode و Amazon Web Services (AWS) التهيئة السحابية.

instagram viewer

على الرغم من بدء تشغيل cloud-init على Ubuntu ، إلا أنها تدعم الآن جميع توزيعات Linux الرئيسية ، مثل openSUSE و Debian و Red Hat Enterprise Linux (RHEL) وما إلى ذلك.

بصرف النظر عن نشر البرامج في السحابة ، يمكنك أيضًا استخدام cloud-init لتكوين البرامج وتثبيتها على الخوادم المحلية أو البيئات الافتراضية مثل VirtualBox و KVM و VMware.

سنستخدم النظام الأساسي السحابي Microsoft Azure لأتمتة نشر خادم Ubuntu باستخدام cloud-init.

الخطوة 1: إنشاء برنامج نصي على السحابة

تستخدم البرامج النصية للتهيئة السحابية وحدات لتكوين جوانب مختلفة من نظامك. على سبيل المثال ، ستستخدم ملف المستخدمين وحدة لتكوين معلومات المستخدم والحسابات ، و واقي الأسلاك وحدة لتكوين WireGuard ، إلخ. هناك الكثير من الوحدات الأخرى التي يمكنك استخدامها خارج الصندوق.

دعنا ننشئ نصًا برمجيًا للشبكة السحابية لأتمتة معظم الأشياء التي تقوم بتكوينها عند إعداد جهاز ظاهري جديد.

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

بصرف النظر عن إنشاء مستخدم جديد ، يجب أن يقوم البرنامج النصي بما يلي:

  • كتابة ملف: أنشئ ملفًا بسيطًا واكتب المحتوى إليه باستخدام امتداد الكتابة_الملفات وحدة. سيتم وضع الملف في الدليل الرئيسي. يمكنك استخدام نفس المفاهيم لإنشاء ملفات أكثر تعقيدًا في المستقبل.
  • أوامر التشغيل: سنقوم بتشغيل أوامر بسيطة لتكوين جدار حماية UFW ، ولكن يمكن أن يكون أي أمر Linux آخر. استخدم ملف runcmd وحدة لتشغيل أي أمر من اختيارك ؛ إنه مشابه لتشغيل أوامر Linux بواسطة تنفيذ نصوص باش.
  • تكوين اللغات: يضبط هذا الإعدادات المحلية المفضلة لديك مثل تخطيط لوحة المفاتيح واللغة المفضلة والمنطقة الزمنية وما إلى ذلك.
  • تثبيت الحزم: استخدم مدير الحزم المفضل لديك لتثبيت الحزم على نظامك. على سبيل المثال ، في الأنظمة القائمة على دبيان ، يمكنك استخدام APT.

هذه ليست سوى بعض الوحدات النمطية التي يمكنك استخدامها من cloud-init؛ هناك العديد من الوحدات النمطية الأخرى لأتمتة جميع أنواع الأشياء.

هنا هو البرنامج النصي الكامل للتهيئة السحابية لتكوين حساب المستخدم الجديد. تذكر استبدال مفتاح SSH بالمفتاح الصحيح. أيضًا ، لا تتردد في تغيير اسم المستخدم وأي تفاصيل أخرى.

vim: النحو = yaml

# أضف مستخدمي النظام هنا
المستخدمون:
- الاسم: مويزة
المجموعات: المستخدمين ، sudo
شل: / بن / باش
gecos: mwiza
simple_text_passwd: العيش-الضحك-الحب 12345G123
lock_passwd: خطأ
ssh_authorized_keys:
- ssh-ed25519 BSHSDSDS3NzaC1sdfSDGSDSDJ1KSDB: PWELJWEEWeKBrkXWbLJBs ؛ ldfkagfafkC6li71Ra6i + NKkajdfi [email protected]

# تثبيت وتحديث وترقية الحزم
package_upgrade: صحيح
package_update: صحيح
package_reboot_if_require: صحيح

الحزم:
- مسار التتبع
- أدوات الشبكة
- fail2ban

# تعيين اللغات
اللغة: en_UK
المنطقة الزمنية: إلخ / التوقيت العالمي المنسق
لوحة المفاتيح:
التخطيط: ملحوظة

الكتابة_الملفات:
- المسار: /etc/salt/minion.d/master_ip_port.conf
المحتوى: |
سيد: ملح
master_port: 4506
publish_port: 4505
- المسار: /home/mwiza/cloud-init.txt
المحتوى: |
تم إنشاؤها بواسطة cloud-init في اللازوردية

# تشغيل أوامر Bash لتكوين البرامج والخدمات
runcmd:
- تمكين ufw
- ufw تسمح ssh
- ufw يسمح 80
- يمكّن systemctl ufw

# قم بإيقاف تشغيل الجهاز الظاهري بعد الانتهاء من التهيئة
الاغلاق: انقطاع التيار الكهربائي

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

الخطوة 2: إنشاء مورد الجهاز الظاهري

تتمثل الخطوة التالية في إنشاء المورد الضروري في Azure للجهاز الظاهري. قم بتسجيل الدخول إلى Azure إذا كان لديك حساب بالفعل أو قم بإنشاء حساب تجريبي مجاني من خلال التوجه إلى azure.microsoft.com.

في الصفحة الرئيسية لمدخل Azure ، انقر فوق ملف قم بإنشاء مورد زر. من قائمة خدمات Azure الأكثر شيوعًا ، حدد آلة افتراضية.

تمنحك الصفحة التالية معلومات حول إنشاء موارد VM مثل القرص الصلب والشبكات وما إلى ذلك.

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

تحت المصادقة اكتب ، حدد ملف كلمة المرور الخيار وتقديم اسم المستخدم وكلمة المرور القوية.

بعد أن تملأ جميع الحقول في هذه الصفحة ، يجب أن تكون التفاصيل الخاصة بك مماثلة لما يلي.

الخطوة 3: إضافة البرنامج النصي الخاص بـ cloud-init

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

أخيرًا ، انقر فوق مراجعة + إنشاء زر. إذا كان كل شيء على ما يرام ، فسوف ينجح الاختبار. خلاف ذلك ، سيرشدك مُنشئ Azure VM إلى التصحيحات التي يجب إجراؤها.

الخطوة 4: تسجيل الدخول إلى جهازك الظاهري

استخدم معلومات النظرة العامة على VM للحصول على عنوان IP العام لجهازك الظاهري وتسجيل الدخول عبر SSH. إذا استخدمت مفتاح SSH الصحيح ، فلن يطالبك النظام بإدخال كلمة مرور المستخدم.

بمجرد تسجيل الدخول ، يمكنك التحقق من وجود الملفات التي تريد إنشاءها عبر البرنامج النصي. أيضًا، ابحث عن الحزم المثبتة مع APT وتحقق من تكوين جدار الحماية بشكل صحيح باستخدام حالة sudo ufw يأمر.

تقوم السحابة الأولية أيضًا بتسجيل المعلومات المهمة في ملف /var/log/cloud-init.log ملف. يحتوي على رسائل مطولة لجميع الأحداث التي حدثت أثناء تهيئة السحابة الأولية. يمكنك سحب هذا الملف باستخدام الأمر cat كما يلي:

cat /var/log/cloud-init.log

أتمتة إنشاء الجهاز الظاهري باستخدام السحابة الأولية

تعد cloud-init أداة قوية تساعدك على أتمتة تثبيت Linux وإعداده. يمكنك استخدامه في السحابة وعلى الخوادم المحلية. سواء كنت ترغب فقط في أتمتة نشر جهازك الظاهري أو تحتاج إلى نشر خوادم Linux على نطاق واسع ، فإن cloud-init تعد خيارًا رائعًا.

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