رسالة الخطا error in network definition expected mappinge check indentation

رسالة الخطا error in network definition expected mappinge check indentation

يبدو أن هناك خطأ في تنسيق ملف Netplan. الخطأ “expected mapping” غالبًا ما يكون بسبب مشكلة في المسافات والتبويب. في ملفات YAML، تعتبر المسافات والتبويب مهمة جدًا.

إليك بعض النقاط التي يجب التحقق منها:

  1. المسافات: تأكد من استخدام مسافتين (2 spaces) للتبويب وليس مسافة واحدة أو أكثر من مسافتين. ولا تستخدم أبدًا Tab بدلاً من المسافات.
  2. التنسيق: تأكد من أن التنسيق يتبع هيكل YAML الصحيح. كل مستوى جديد يجب أن يكون له مسافتين إضافيتين.
  3. علامات الاقتباس: في بعض الأحيان، يمكن أن تسبب علامات الاقتباس مشاكل إذا لم يتم استخدامها بشكل صحيح. حاول إزالة علامات الاقتباس من حول العناوين والأسماء إذا لم تكن ضرورية.

إليك مثالًا لملف 50-cloud-init.yaml أو أي ملف آخر في /etc/netplan/ مع التنسيق الصحيح:

Code

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.1.10/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

تأكد من استبدال eth0 باسم واجهة الشبكة الفعلي لديك، وتحديث العناوين والبوابات وفقًا لشبكتك.

بعد تعديل الملف، قم بتشغيل:

Code

sudo netplan try

ثم:

Code

sudo netplan apply

إذا استمرت المشكلة، حاول التحقق من الملف باستخدام أداة yamllint:

Code

sudo apt install yamllint
yamllint /etc/netplan/50-cloud-init.yaml

التنسيق: تأكد من أن التنسيق يتبع هيكل YAML الصحيح. كل مستوى جديد يجب أن يكون له مسافتين إضافيتين.

إليك تفصيل أكثر حول كيفية تطبيق التنسيق الصحيح في ملف YAML لضبط الشبكة في أوبونتو:

هيكل YAML

في YAML، يتم استخدام المسافات لتحديد المستويات. يجب أن يكون كل مستوى فرعي له مسافتين أكثر من المستوى الأب. لا تستخدم أبدًا Tab، فقط استخدم المسافات.

مثال على التنسيق الصحيح

Code

network:
··version: 2
··renderer: networkd
··ethernets:
····eth0:
······dhcp4: no
······addresses:
········- 192.168.1.10/24
······gateway4: 192.168.1.1
······nameservers:
········addresses: [8.8.8.8, 8.8.4.4]

حيث أنّ:

  • · تمثل مسافة واحدة.

تفصيل المستويات

  1. المستوى الأول: network
  2. يحتوي على version و renderer و ethernets.
  3. المستوى الثاني: ethernets
  4. يحتوي على تفاصيل واجهة الشبكة eth0.
  5. المستوى الثالث: eth0
  6. يحتوي على إعدادات الواجهة مثل dhcp4 و addresses و gateway4 و nameservers.
  7. المستوى الرابع: addresses و nameservers
  8. تحتوي على قيم متعددة مثل عنوان IP وخوادم DNS.

نصائح إضافية

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

بعد التأكد من التنسيق، قم بتطبيق التغييرات باستخدام:

Code

sudo netplan try
sudo netplan apply00

أضف تعليقاً