مقدمة حول FreeBSD على Azure

ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات توسعة مرنة

توفر هذه المقالة نظرة عامة حول تشغيل جهاز ظاهري FreeBSD في Azure.

نظرة عامة

FreeBSD لـ Microsoft Azure هو نظام تشغيل كمبيوتر متقدم يُستخدم لتشغيل الخوادم الحديثة وأجهزة الكمبيوتر المكتبية والأنظمة الأساسية المضمنة.

توفر شركة Microsoft Corporation صور FreeBSD على Azure مع تكوين Azure VM Guest Agent مسبقاً. حالياً، يتم تقديم إصدارات FreeBSD التالية كصور بواسطة Microsoft:

  • FreeBSD 10.4 على Azure Marketplace
  • FreeBSD 11.2 على Azure Marketplace
  • FreeBSD 11.3 على Azure Marketplace
  • FreeBSD 12.0 على Azure Marketplace

تتضمن إصدارات FreeBSD التالية أيضاً Azure VM Guest Agent، ومع ذلك، يتم تقديمها كصور من قبل مؤسسة FreeBSD:

  • FreeBSD 11.4 على Azure Marketplace
  • FreeBSD 12.2 على Azure Marketplace
  • FreeBSD 13.0 على Azure Marketplace

يكون الوكيل مسؤولاً عن الاتصال بين FreeBSD VM وAzure fabric لعمليات مثل تزويد الجهاز الظاهري عند الاستخدام الأول (اسم المستخدم أو كلمة المرور أو مفتاح SSH أو اسم المضيف وما إلى ذلك) وتمكين الوظائف لملحقات VM الانتقائية.

أما بالنسبة للإصدارات المستقبلية من FreeBSD، تتمثل الاستراتيجية في البقاء على اطلاع دائم وإتاحة أحدث الإصدارات بعد فترة وجيزة من نشرها بواسطة فريق هندسة إصدارات FreeBSD.

إنشاء FreeBSD VM من خلال Azure CLI على FreeBSD

تحتاج أولاً إلى تثبيت Azure CLI على الرغم من اتباع الأمر على جهاز FreeBSD.

curl -L https://aka.ms/InstallAzureCli | bash

إذا لم يتم تثبيت bash على جهاز FreeBSD خاصتك، فبادر بتشغيل الأمر التالي قبل التثبيت. 

sudo pkg install bash

إذا لم يتم تثبيت Python على جهاز FreeBSD خاصتك، فبادر بتشغيل الأمر التالي قبل التثبيت. 

sudo pkg install python38
cd /usr/local/bin 
sudo rm /usr/local/bin/python 
sudo ln -s /usr/local/bin/python3.8 /usr/local/bin/python

أثناء التثبيت، يتم سؤالك Modify profile to update your $PATH and enable shell/tab completion now? (Y/n). إذا قمت بالإجابة y وإدخال /etc/rc.conf كـ a path to an rc file to update، فقد تواجه المشكلة ERROR: [Errno 13] Permission denied. لحل هذه المشكلة، يجب منح حق الكتابة للمستخدم الحالي مقابل الملف etc/rc.conf.

يمكنك الآن تسجيل الدخول إلى Azure وإنشاء جهاز FreeBSD VM خاصتك. فيما يلي مثال لإنشاء جهاز ظاهري FreeBSD 11.0. يمكنك أيضاً إضافة المعلمة --public-ip-address-dns-name باسم DNS فريد عمومي لعنوان IP عام تم إنشاؤه حديثاً.

az login 
az group create --name myResourceGroup --location eastus
az vm create --name myFreeBSD11 \
    --resource-group myResourceGroup \
    --image MicrosoftOSTC:FreeBSD:11.0:latest \
    --admin-username azureuser \
    --generate-ssh-keys

ثم يمكنك تسجيل الدخول إلى جهاز FreeBSD VM خاصتك من خلال عنوان IP المطبوع في إخراج التوزيع أعلاه.

ssh azureuser@xx.xx.xx.xx -i /etc/ssh/ssh_host_rsa_key

ملحقات VM لـ FreeBSD

فيما يلي ملحقات VM المدعومة في FreeBSD.

VMAccess

يمكن لملحق VMAccess:

  • إعادة تعيين كلمة مرور مستخدم sudo الأصلي.
  • إنشاء مستخدم sudo جديد مع تحديد كلمة المرور.
  • تعيين مفتاح المضيف العام باستخدام المفتاح المُحدد.
  • إعادة تعيين مفتاح المضيف العام المقدم أثناء تزويد VM إذا لم يتم توفير مفتاح المضيف.
  • فتح منفذ SSH (22) واستعِد sshd_config إذا تم تعيين reset_ssh إلى true.
  • إزالة المستخدم الموجود.
  • التحقق من الأقراص.
  • إصلاح قرص مضاف.

CustomScript

يمكن لملحق CustomScript :

  • إذا تم توفيره، فبادر بتنزيل البرامج النصية المخصصة من Azure Storage أو وحدة التخزين العامة الخارجية (على سبيل المثال، GitHub).
  • تشغيل البرنامج النصي لنقطة الإدخال.
  • دعم الأوامر المُضمَّنة.
  • تحويل السطر الجديد على غرار Windows في البرامج النصية shell وPython تلقائياً.
  • إزالة قائمة المواد في البرامج النصية shell وPython تلقائياً.
  • حماية البيانات الحساسة في CommandToExecute.

ملاحظة

جهاز FreeBSD VM لا يدعم إلا CustomScript الإصدار 1.x حتى الآن.

المصادقة: أسماء المستخدمين وكلمات المرور ومفاتيح SSH

عند إنشاء جهاز ظاهري FreeBSD باستخدام مدخل Azure، يجب عليك توفير اسم مستخدم أو كلمة مرور أو مفتاح SSH عام. يجب ألا تتطابق أسماء المستخدمين لتوزيع جهاز ظاهري FreeBSD على Azure مع أسماء حسابات النظام (UID <100) الموجودة بالفعل في الجهاز الظاهري ("الجذر"، على سبيل المثال). حالياً، يتم دعم مفتاح RSA SSH فقط. يجب أن يبدأ مفتاح SSH متعدد الأسطر بـ ---- BEGIN SSH2 PUBLIC KEY ---- وينتهي بـ ---- END SSH2 PUBLIC KEY ----.

الحصول على امتيازات المستخدم الفائق

حساب المستخدم الذي تم تحديده أثناء توزيع مثيل الجهاز الظاهري على Azure هو حساب مميز. تم تثبيت حزمة sudo في صورة FreeBSD المنشورة. بعد تسجيل الدخول من خلال حساب المستخدم هذا، يمكنك تشغيل الأوامر كجذر باستخدام بناء جملة الأمر.

$ sudo <COMMAND>

يمكنك اختيارياً الحصول على shell الجذر باستخدام sudo -s.

المشكلات المعروفة

يحتوي الإصدار 2.2.2.2 من Azure VM Guest Agent على مشكلة معروفة تتسبب في فشل التزويد لـ FreeBSD VM على Azure. تم تسجيل الإصلاح بواسطة الإصدار 2.2.3 من Azure VM Guest Agent والإصدارات الأحدث.

الخطوات التالية