مشاركة عبر


تعطيل أو إزالة Linux Agent من الأجهزة الظاهرية والصور

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

قبل إزالة Linux Agent، يجب أن تفهم ما لن يتمكن الجهاز الظاهري من فعله بعد إزالة Linux Agent.

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

يستضيف نظام Azure الأساسي العديد من الملحقات التي تتراوح بين تكوين الجهاز الظاهري والمراقبة والأمان وتطبيقات الأدوات المساعدة. فيما يلي نطاق كبير من الخيارات لملحقات الطرف الأول والثالث، وأمثلة على السيناريوهات الرئيسية التي تستخدم الملحقات من أجلها:

  • دعم خدمات Azure الخاصة بالطرف الأول، مثل النسخ الاحتياطي لـ Azure والمراقبة وتشفير القرص والأمان والنسخ المتماثل للموقع وغيرها.
  • SSH / إعادة تعيين كلمة المرور
  • تكوين الجهاز الظاهري - تشغيل البرامج النصية المخصصة، وتثبيت عوامل Chef، وPuppet وغيرها.
  • منتجات الجهات الخارجية، مثل منتجات AV، وأدوات الثغرات الأمنية في الأجهزة الظاهرية، وأدوات مراقبة الأجهزة الظاهرية والتطبيقات.
  • يمكن تجميع الملحقات مع توزيع جهاز ظاهري جديد. على سبيل المثال، يمكن أن تكون جزءاً من عملية توزيع أكبر، أو تكوين التطبيقات على مكون إعدادات الأجهزة الظاهرية، أو تشغيلها مقابل أي أنظمة مدعومة تعمل بالامتداد بعد التوزيع.

تعطيل معالجة الملحقات

هناك عدة طرق لتعطيل معالجة الملحقات، بناء على احتياجاتك، ولكن قبل المتابعة، يجب إزالة جميع الملحقات التي تم توزيعها على الجهاز الظاهري، على سبيل المثال باستخدام Azure CLI، يمكنك إدراج وحذف ما يلي:

az vm extension delete -g MyResourceGroup --vm-name MyVm -n extension_name

إشعار

إذا لم تقم بما سبق، فسيحاول النظام الأساسي إرسال تكوين الملحق والمهلة بعد 40 دقيقة.

تعطيل في وحدة التحكم

إذا لم تكن متأكدًا مما إذا كنت ستحتاج إلى ملحقات في المستقبل أم لا، يمكنك ترك Linux Agent مثبتًا على الجهاز الظاهري، ثم تعطيل إمكانية معالجة الملحقات من النظام الأساسي. يتوفر هذا الخيار في Microsoft.Compute إصدار واجهة برمجة التطبيقات 2018-06-01 أو أعلى، ولا يعتمد على إصدار Linux Agent المثبت.

az vm update -g <resourceGroup> -n <vmName> --set osProfile.allowExtensionOperations=false

يمكنك بسهولة إعادة تمكين معالجة الملحق هذا من النظام الأساسي، باستخدام الأمر أعلاه، ولكن قم بتعيينه إلى "true".

إزالة Linux Agent من جهاز ظاهري قيد التشغيل

تأكد من إزالة جميع الملحقات الموجودة من الجهاز الظاهري من قبل، كما هو موضح أعلاه.

الخطوة 1: إزالة Azure Linux Agent

إذا قمت فقط بإزالة Linux Agent، وليس أدوات التكوين المرتبطة، يمكنك إعادة التثبيت في وقت لاحق. شغِّل أحد الإجراءات التالية، كجذر، لإزالة Azure Linux Agent:

بالنسبة إلى Ubuntu 18.04+

sudo apt -y remove walinuxagent

ل Redhat 7.X و8.X و9.X

sudo yum -y remove WALinuxAgent

ل SUSE 12.X، 15.X

sudo zypper --non-interactive remove python-azure-agent

الخطوة 2: (اختياري) إزالة البيانات الاصطناعية لـ Azure Linux Agent

هام

يمكنك إزالة جميع البيانات الاصطناعية المرتبطة بـ Linux Agent، ولكن هذا يعني أنه لا يمكنك إعادة تثبيته في وقت لاحق. لذلك، يوصى بشدة بالتفكير في تعطيل Linux Agent أولاً وإزالته باستخدام ما سبق فقط.

إذا كنت تعرف أنك لن تعيد تثبيت Linux Agent مرة أخرى، يمكنك تشغيل ما يلي:

بالنسبة إلى Ubuntu 18.04+

sudo pt -y purge walinuxagent
sudo cp -rp /var/lib/waagent /var/lib/waagent.bkp
sudo rm -rf /var/lib/waagent
sudo rm -f /var/log/waagent.log

ل Redhat 7.X، 8.X، 9.X

sudo yum -y remove WALinuxAgent
sudo rm -f /etc/waagent.conf.rpmsave
sudo rm -rf /var/lib/waagent
sudo rm -f /var/log/waagent.log

ل SUSE 12.X، 15.X

sudo zypper --non-interactive remove python-azure-agent
sudo rm -f /etc/waagent.conf.rpmsave
sudo rm -rf /var/lib/waagent
sudo rm -f /var/log/waagent.log

إعداد صورة بدون Linux Agent

إذا كانت لديك صورة تحتوي بالفعل على cloud-init، وتريد إزالة Linux Agent، ولكن لا يزال يتم توفيره باستخدام cloud-init، فقم بتشغيل الخطوات الواردة في الخطوة 2 (والخطوة 3 اختياريًا) كجذر لإزالة Azure Linux Agent، ثم سيقوم ما يلي بإزالة cloud-init والبيانات المخزنة مؤقتًا، وإعداد الجهاز الظاهري لإنشاء صورة مخصصة.

sudo cloud-init clean --logs --seed

إلغاء التزويد وإنشاء صورة

يتمتع Linux Agent بالقدرة على تنظيف بعض بيانات التعريف للصور الموجودة، من خلال الخطوة "waagent -deprovision+user"، ومع ذلك، بعد إزالتها، ستحتاج إلى تنفيذ إجراءات مثل أدناه، وإزالة أي بيانات حساسة أخرى منها.

  • إزالة كافة مفاتيح مضيف ssh الموجودة

    sudo rm /etc/ssh/ssh_host_*key*
    
  • حذف حساب المسؤول

    sudo touch /var/run/utmp
    sudo userdel -f -r <admin_user_account>
    
  • حذف كلمة مرور الجذر

    sudo passwd -d root
    

بمجرد الانتهاء مما سبق، يمكنك إنشاء الصورة المخصصة باستخدام Azure CLI.

إنشاء صورة مدارة عادية

az vm deallocate -g <resource_group> -n <vm_name>
az vm generalize -g <resource_group> -n <vm_name>
az image create -g <resource_group> -n <image_name> --source <vm_name>
az sig image-version create \
    -g $sigResourceGroup
    --gallery-name $sigName
    --gallery-image-definition $imageDefName
    --gallery-image-version 1.0.0
    --managed-image /subscriptions/00000000-0000-0000-0000-00000000xxxx/resourceGroups/imageGroups/providers/images/MyManagedImage

إنشاء جهاز ظاهري من صورة لا تحتوي على Linux Agent

عند إنشاء الجهاز الظاهري من الصورة بدون Linux Agent، تحتاج إلى التأكد من أن تكوين توزيع الجهاز الظاهري يشير إلى أن الملحقات غير مدعومة على هذا الجهاز الظاهري.

إشعار

إذا لم تقم بما سبق، فسيحاول النظام الأساسي إرسال تكوين الملحق والمهلة بعد 40 دقيقة.

لتوزيع الجهاز الظاهري مع تعطيل الملحقات، يمكنك استخدام Azure CLI مع --enable-agent.

az vm create \
    --resource-group $resourceGroup \
    --name $prodVmName \
    --image RedHat:RHEL:8.1-ci:latest \
    --admin-username azadmin \
    --ssh-key-value "$sshPubkeyPath" \
    --enable-agent false

بدلاً من ذلك، يمكنك القيام بذلك باستخدام قوالب Azure Resource Manager (ARM)، عن طريق تعيين "provisionVMAgent": false,.

"osProfile": {
    "computerName": "[parameters('virtualMachineName')]",
    "adminUsername": "[parameters('adminUsername')]",
    "linuxConfiguration": {
        "disablePasswordAuthentication": "true",
        "provisionVMAgent": false,
        "ssh": {
            "publicKeys": [
                {
                    "path": "[concat('/home/', parameters('adminUsername'), '/.ssh/authorized_keys')]",
                    "keyData": "[parameters('adminPublicKey')]"

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

لمزيد من المعلومات، راجع تزويد Linux.