Пытаюсь настроить статический IP-адрес для виртуальной машины для личного проекта, но постоянно получаю ошибку в синтаксисе YAML.

Вопрос или проблема

В настоящее время это то, что у меня есть в виртуальной машине с Ubuntu. Я следовал руководству из видео, которое смотрю, но оно продолжает говорить, что есть синтаксическая ошибка. Я проверял это несколько раз и сделал новую установку, но ошибка всё равно остается.

enter image description here

Синтаксис файлов Netplan YAML очень специфичен в отношении отступов. Во-первых, вам не разрешается использовать табуляцию. Вместо этого нужно использовать только пробелы.

Количество пробелов не имеет значения. Можно использовать один пробел, если это вам подходит. В вашем случае вы использовали четыре. В приведенном ниже примере я использовал два пробела, что является моим предпочтением. Важным фактором является последовательность.

Что касается вашей конфигурации и ошибки, которую вы получаете, то блоки addresses, nameservers и routes должны находиться под блоком enp0s3.

Поэтому отредактируйте файл конфигурации Netplan YAML следующим образом:

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.10.10/24]
      nameservers:
        addresses: [8.8.8.8]
      routes:
        - to: default
          via: 192.168.10.1

Затем выполните следующие команды, чтобы применить изменения:

sudo netplan try
sudo netplan apply

После этого проверьте статус с помощью команды netplan status.

Вот ссылка на документацию Netplan.

Ответ или решение

Теория:

Настройка статического IP-адреса на виртуальной машине (VM) с использованием Ubuntu требует определения конфигурационного файла в формате YAML с помощью Netplan. Netplan является системой для упрощения процесса управления сетевыми настройками в Linux. YAML (YAML Ain’t Markup Language) — это формат сериализации данных, который отличается своей простотой и читаемостью. Однако, YAML файлов строго придерживаются правил форматирования, в частности касающихся отступов и использования пробелов вместо табуляций.

Пример:

Вы упомянули, что вы столкнулись с ошибками синтаксиса YAML при попытке установить статический IP-адрес в вашей Ubuntu VM. Основные ошибки, связанные с YAML, обычно возникают из-за неправильно выставленных отступов или использования табуляции. YAML файлов крайне чувствительны к структурным деталям. Например, каждое дочернее значение должно быть правильно выровнено относительно его родительского, используя равное количество пробелов.

Ваш YAML файл может выглядеть, например, таким образом:

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.10.10/24]
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
      routes:
        - to: default
          via: 192.168.10.1

Заметьте, как каждая строка имеет определенное количество пробелов, чтобы обозначить её уровень в иерархии: ни одна строка не содержит отступов с использованием символа табуляции, а каждая подгруппа строк, например, адреса имен серверов, правильно выровнена относительно её родительского элемента.

Применение:

Теперь давайте обсудим, как исправить возможные ошибки в вашем сценарии. Сначала убедитесь, что вы используете только пробелы для отступов в вашем YAML файле. А также проверьте, что количество пробелов на каждом уровне вложенности одинаково, что способствует легкости понимания программы разметки.

  1. Откройте ваш файл Netplan, обычно расположенный в /etc/netplan/01-netcfg.yaml.

  2. Убедитесь, что ваша конфигурация соответствует правилам, представленным в примере. Попробуйте следовать такому формату отступов, чтобы избежать ошибок:

  • Все элементы одного уровня (например, ключи ethernets, addresses, nameservers и т.д.) должны иметь одинаковый отступ.
  • Следите за конфигурацией ваших IP-адресов и маршрутов, они должны быть определены в скобках или перечислены с дефисами для списка.
  1. После того как все исправления сделаны, примените конфигурацию с помощью команд:
sudo netplan try
sudo netplan apply

sudo netplan try позволяет временно применить изменения для проверки. Если все работает исправно, вы можете продолжить, применяя изменения постоянно командой sudo netplan apply.

  1. Убедитесь, что настройки IP действительны, используя команду ip address или netplan status.

Подводя итог, настройка статических IP требует внимательности к соблюдению синтаксиса YAML, особенно касающихся пробелов и структуры, чтобы избежать ошибок. Если вы все еще сталкиваетесь с проблемами, рекомендуется просмотреть официальную документацию Netplan для получения более детальной информации и примеров.

Оцените материал
Добавить комментарий

Капча загружается...