فهم واستخدام Azure Linux Agent

يدير Microsoft Azure Linux Agent (waagent) & توفير FreeBSD لنظام Linux، وتفاعل الجهاز الظاهري مع Azure Fabric Controller. بالإضافة إلى عامل Linux الذي يوفر وظائف التوفير، يوفر Azure أيضاً خيار استخدام cloud-init لبعض أنظمة تشغيل Linux. يوفر وكيل Linux الوظائف التالية لعمليات نشر Linux وFreeBSD IaaS:

ملاحظة

لمزيدٍ من المعلومات، راجع الملف README.

  • تزويد الصور

    • انشاء حساب مستخدم
    • تكوين أنواع مصادقة SSH
    • نشر مفاتيح SSH العامة وأزواج المفاتيح
    • تحديد اسم المضيف
    • نشر اسم المضيف على النظام الأساسي DNS
    • الإبلاغ عن بصمة مفتاح مضيف SSH إلى النظام الأساسي
    • إدارة قرص الموارد
    • تنسيق وتركيب قرص المورد
    • تكوين مساحة المبادلة
  • الشبكات

    • يدير المسارات لتحسين التوافق مع خوادم DHCP للنظام الأساسي
    • يضمن استقرار اسم واجهة الشبكة
  • Kernel

    • تكوين NUMA الظاهري (تعطيل لـ kernel <2.6.37)
    • يستهلك إنتروبيا Hyper-V لـ /dev/random
    • تكوين مهلات SCSI للجهاز الجذر (الذي قد يكون بعيدًا)
  • التشخيص

    • إعادة توجيه وحدة التحكم إلى المنفذ التسلسلي
  • عمليات نشر SCVMM

    • اكتشاف عامل VMM لنظام Linux وتشغيله عند التشغيل في بيئة System Center Virtual Machine Manager 2012 R2
  • ملحق الجهاز الظاهري

    • أدخل المكون الذي تم تأليفه بواسطة Microsoft والشركاء في Linux VM (IaaS) لتمكين أتمتة البرامج والتكوين
    • تنفيذ مرجع ملحق الجهاز الظاهري على https://github.com/Azure/azure-linux-extensions

الاتصالات

يحدث تدفق المعلومات من المنصة إلى الوكيل عبر قناتين:

  • قرص DVD مرفق في وقت التمهيد لعمليات نشر IaaS. يشتمل قرص DVD على ملف تكوين متوافق مع OVF يتضمن جميع معلومات التزويد، بخلاف أزواج مفاتيح SSH الفعلية.
  • تعرض نقطة نهاية TCP واجهة برمجة تطبيقات REST المستخدمة للحصول على النشر وتكوين الهيكل.

المتطلبات

تم اختبار الأنظمة التالية ومن المعروف أنها تعمل مع وكيل Azure Linux:

ملاحظة

قد تختلف هذه القائمة عن القائمة الرسمية لـ التوزيعات المدعومة.

  • CoreOS
  • CentOS 6.3+
  • Red Hat Enterprise Linux 6.7+
  • Debian 7.0+
  • Ubuntu 12.04+
  • openSUSE 12.3+
  • SLES 11 SP3+
  • Oracle Linux 6.4+

الأنظمة الأخرى المدعومة:

  • FreeBSD 10+ (Azure Linux Agent v2.0.10+)

يعتمد وكيل Linux على بعض حزم النظام من أجل العمل بشكلٍ صحيح:

  • Python 2.6+
  • OpenSSL 1.0+
  • OpenSSH 5.3+
  • أدوات نظام الملفات: sfdisk، وfdisk، وmkfs، وparted
  • أدوات كلمة المرور: chpasswd, sudo
  • أدوات معالجة النصوص: sed, grep
  • أدوات الشبكة: ip-route
  • دعم النواة لتركيب أنظمة ملفات UDF.

تأكد من وصول الجهاز الظاهري إلى عنوان IP 168.63.129.16. لمزيدٍ من المعلومات، راجع ما هو عنوان IP 168.63.129.16.

التثبيت

يعد التثبيت باستخدام RPM أو حزمة DEB من مستودع حزم التوزيع الخاص بك هو الطريقة المفضلة لتثبيت Azure Linux Agent وترقيته. يقوم جميع موفري التوزيع المعتمدين بدمج حزمة عامل Azure Linux في صورهم ومستودعاتهم.

راجع الوثائق في مستودع Azure Linux Agent على GitHub للتعرف على خيارات التثبيت المتقدمة، مثل التثبيت من المصدر أو إلى المواقع المخصصة أو البادئات.

خيارات Command-Line

الإشارات

  • مطول: زيادة الإسهاب في الأمر المحدد
  • القوة: تخطي التأكيد التفاعلي لبعض الأوامر

الأوامر

  • مساعدة: يسرد الأوامر والعلامات المدعومة.

  • إلغاء التوفير: محاولة تنظيف النظام وجعله مناسباً لإعادة التوفير. يتم حذف العملية التالية:

    • جميع مفاتيح مضيف SSH (إذا كانت Provisioning.RegenerateSshHostKeyPair هي "y" في ملف التكوين)
    • تكوين خادم الأسماء في /etc/resolv.conf
    • كلمة مرور الجذر من /etc/shadow (إذا كانت Provisioning.DeleteRootPassword هي "y" في ملف التكوين)
    • عقود إيجار عميل DHCP المخزن مؤقتاً
    • إعادة تعيين اسم المضيف إلى localhost.localdomain

تحذير

لا يضمن إلغاء التوفير أن الصورة قد تم مسحها من جميع المعلومات الحساسة ومناسبة لإعادة التوزيع.

  • إلغاء التوفير + المستخدم: يؤدي كل شيء في التوفير (أعلاه) ويحذف أيضاً آخر حساب مستخدم مُدار (تم الحصول عليه من /var/lib/waagent) والبيانات المرتبطة به. تحدث هذه المعلمة عند إلغاء توفير صورة كانت توفر سابقاً على Azure حتى يمكن التقاطها وإعادة استخدامها.
  • الإصدار: يعرض إصدار waagent
  • وحدة التحكم التسلسلية: قم بتكوين GRUB لتمييز ttyS0 (المنفذ التسلسلي الأول) كوحدة تحكم التمهيد. يضمن ذلك إرسال سجلات تمهيد kernel إلى المنفذ التسلسلي وإتاحتها للتصحيح.
  • البرنامج الخفي: تشغيل waagent كبرنامج خفي لإدارة التفاعل مع النظام الأساسي. يتم تحديد هذه الوسيطة إلى waagent في البرنامج النصي waagent init.
  • البدء: تشغيل waagent كعملية خلفية

تهيئة

يتحكم ملف التكوين (/etc/waagent.conf) في إجراءات waagent. يُظهر ما يلي نموذجاً لملف التكوين:

Provisioning.Enabled=y
Provisioning.DeleteRootPassword=n
Provisioning.RegenerateSshHostKeyPair=y
Provisioning.SshHostKeyPairType=rsa
Provisioning.MonitorHostName=y
Provisioning.DecodeCustomData=n
Provisioning.ExecuteCustomData=n
Provisioning.AllowResetSysUser=n
Provisioning.PasswordCryptId=6
Provisioning.PasswordCryptSaltLength=10
ResourceDisk.Format=y
ResourceDisk.Filesystem=ext4
ResourceDisk.MountPoint=/mnt/resource
ResourceDisk.MountOptions=None
ResourceDisk.EnableSwap=n
ResourceDisk.SwapSizeMB=0
LBProbeResponder=y
Logs.Verbose=n
OS.RootDeviceScsiTimeout=300
OS.OpensslPath=None
HttpProxy.Host=None
HttpProxy.Port=None
AutoUpdate.Enabled=y

يتم وصف خيارات التكوين المختلفة التالية. خيارات التكوين هي من ثلاثة أنواع. قيمة منطقية أو سلسلة أو عدد صحيح. يمكن تحديد خيارات التكوين المنطقية على أنها "y" أو "n". يمكن استخدام الكلمة الأساسية الخاصة "لا شيء" لبعض إدخالات تكوين نوع السلسلة على النحو التالي:

Provisioning.Enabled:

Type: Boolean  
Default: y

يسمح هذا للمستخدم بتمكين وظيفة التوفير في الوكيل أو تعطيلها. القيم الصالحة هي "y" أو "n". إذا تم تعطيل التوفير، فسيتم الاحتفاظ بمضيف SSH ومفاتيح المستخدم في الصورة ويتم تجاهل أي تكوين محدد في واجهة برمجة تطبيقات التوفير في Azure.

ملاحظة

يتم تعيين المعلمة Provisioning.Enabled افتراضياً على "n" في Ubuntu Cloud Images التي تستخدم cloud-init للتوفير.

Provisioning.DeleteRootPassword:

Type: Boolean  
Default: n

في حال التعيين، يتم مسح كلمة مرور الجذر في الملف /etc/shadow أثناء عملية التوفير.

Provisioning.RegenerateSshHostKeyPair:

Type: Boolean  
Default: y

في حال التعيين، يتم حذف جميع أزواج مفاتيح مضيف SSH (ecdsa وdsa وrsa) أثناء عملية التوفير من /etc/ssh/. ويتم إنشاء زوج مفاتيح جديد واحد.

يمكن تكوين نوع التشفير لزوج المفاتيح الجديد من خلال إدخال Provisioning.SshHostKeyPairType. تقوم بعض التوزيعات بإعادة إنشاء أزواج مفاتيح SSH لأي أنواع تشفير مفقودة عند إعادة تشغيل SSH الخفي (على سبيل المثال، عند إعادة التشغيل).

Provisioning.SshHostKeyPairType:

Type: String  
Default: rsa

يمكن تعيين هذا على نوع خوارزمية تشفير مدعوم بواسطة SSH الخفي على الجهاز الظاهري. القيم المدعومة عادةً هي "rsa" و"dsa" و"ecdsa". ملف "putty.exe" على Windows لا يدعم "ecdsa". لذلك، إذا كنت تنوي استخدام putty.exe على Windows للاتصال بنشر Linux، فاستخدم "rsa" أو "dsa".

Provisioning.MonitorHostName:

Type: Boolean  
Default: y

في حال التعيين، يراقب Waagent الجهاز الظاهري لنظام Linux لتغييرات اسم المضيف (كما يتم إرجاعها بواسطة الأمر "hostname") ويقوم تلقائياً بتحديث تكوين الشبكة في الصورة لعكس التغيير. من أجل دفع تغيير الاسم إلى خوادم DNS، تتم إعادة تشغيل الشبكات في الجهاز الظاهري. وهذا يؤدي إلى فقدان الاتصال بالإنترنت لفترة وجيزة.

Provisioning.DecodeCustomData

Type: Boolean  
Default: n

في حال التعيين، يقوم WAagent بفك تشفير CustomData من Base64.

Provisioning.ExecuteCustomData

Type: Boolean  
Default: n

في حال التعيين، يقوم WAagent بتنفيذ CustomData بعد التوفير.

Provisioning.AllowResetSysUser

Type: Boolean
Default: n

يسمح هذا الخيار بإعادة تعيين كلمة المرور الخاصة بمستخدم sys؛ تم تعطيل الإعداد الافتراضي.

Provisioning.PasswordCryptId

Type: String  
Default: 6

الخوارزمية التي يستخدمها التشفير عند إنشاء تجزئة لكلمة المرور.
1 - MD5
2a - Blowfish
5 - SHA-256
6 - SHA-512

Provisioning.PasswordCryptSaltLength

Type: String  
Default: 10

طول القيمة العشوائية المستخدمة عند إنشاء تجزئة كلمة المرور.

ResourceDisk.Format:

Type: Boolean  
Default: y

في حال التعيين، يتم تنسيق قرص المورد الذي يوفره النظام الأساسي وتثبيته بواسطة waagent إذا كان نوع نظام الملفات الذي طلبه المستخدم في "ResourceDisk.Filesystem" هو أي شيء بخلاف "ntfs". يتم توفير قسم واحد من النوع Linux (83) على القرص. لم تتم تهيئة هذا القسم إذا كان من الممكن تحميله بنجاح.

ResourceDisk.Filesystem:

Type: String  
Default: ext4

يحدد هذا نوع نظام الملفات لقرص الموارد. تختلف القيم المدعومة باختلاف توزيع Linux. إذا كانت السلسلة X، فيجب أن يكون mkfs.X موجوداً في صورة Linux. يجب أن تستخدم صور SLES 11 عادةً "ext3". يجب أن تستخدم صور FreeBSD "ufs2" هنا.

ResourceDisk.MountPoint:

Type: String  
Default: /mnt/resource 

يحدد هذا المسار الذي يتم فيه تثبيت قرص المورد. قرص المورد هو قرص مؤقت، وقد يتم إفراغه عند إلغاء توفير الجهاز الظاهري.

ResourceDisk.MountOptions

Type: String  
Default: None

يحدد خيارات تحميل القرص لتمريرها إلى الأمر mount -o. هذه قائمة من القيم مفصولة بفواصل، مثل. 'nodev,nosuid'. انظر تثبيت(8) لمزيدٍ من التفاصيل.

ResourceDisk.EnableSwap:

Type: Boolean  
Default: n

في حال التعيين، يتم إنشاء ملف مبادلة (/swapfile) على قرص المورد وإضافته إلى مساحة تبديل النظام.

ResourceDisk.SwapSizeMB:

Type: Integer  
Default: 0

حجم ملف المبادلة بالميجابايت.

Logs.Verbose:

Type: Boolean  
Default: n

في حال التعيين، يتم تعزيز الإسهاب في السجل. يقوم Waagent بتسجيل الدخول إلى وظيفة logrotate الخاصة بالنظام /var/log/waagent.log واستخدامها لتدوير السجلات.

OS.EnableRDMA

Type: Boolean  
Default: n

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

OS.RootDeviceScsiTimeout:

Type: Integer  
Default: 300

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

OS.OpensslPath:

Type: String  
Default: None

يمكن استخدام هذا الإعداد لتحديد مسار بديل للثنائي opensl لاستخدامه في عمليات التشفير.

HttpProxy.Host, HttpProxy.Port

Type: String  
Default: None

في حال التعيين، يستخدم الوكيل هذا الخادم الوكيل للوصول إلى الإنترنت.

AutoUpdate.Enabled

Type: Boolean
Default: y

تمكين التحديث التلقائي أو تعطيله لمعالجة حالة الهدف؛ تم تمكين الإعداد الافتراضي.

صور Ubuntu Cloud

إن Ubuntu Cloud تستخدم صور cloud-init لتنفيذ العديد من مهام التهيئة التي كان من الممكن إدارتها بواسطة وكيل Azure Linux. تنطبق الاختلافات التالية:

  • الإعداد الافتراضي Provisioning.Enabled هو "n" على Ubuntu Cloud Images التي تستخدم cloud-init لتنفيذ مهام التوفير.

  • لا تؤثر معلمات التكوين التالية على Ubuntu Cloud Images التي تستخدم cloud-init لإدارة قرص المورد ومساحة التبادل:

    • ResourceDisk.Format
    • ResourceDisk.Filesystem
    • ResourceDisk.MountPoint
    • ResourceDisk.EnableSwap
    • ResourceDisk.SwapSizeMB
  • لمزيدٍ من المعلومات، راجع الموارد التالية لتكوين نقطة تحميل قرص المورد وتبديل المساحة على Ubuntu Cloud Images أثناء التوفير: