ошибка netplan, неизвестный ключ nameservers

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

У меня есть ошибка, но не орфографическая ошибка.

Вот моя конфигурация netplan:

network:
  ethernets:
    ens32:
      addresses: [172.16.120.74/16]
      nameservers:
        addresses: [127.0.0.53, 172.16.1.5]
  renderer: networkd
  version: '2'

Это выдает ошибку:

Ошибка в определении сети //etc/netplan/99.clw_netcfg.yaml строка 3 столбец 6: неизвестный ключ nameservers

У кого-нибудь есть идеи?

К сожалению, сообщения об ошибках netplan часто заставляют вас смотреть на неправильную строку. Оформите ваш файл yaml netplan следующим образом, и все должно работать:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens32:
      addresses:
        - 172.16.120.74/16
      nameservers:
        addresses: [127.0.0.53, 172.16.1.5]

Обратите внимание, что символ ‘-‘ вашего IP-адреса должен находиться под второй буквой d в addresses из предыдущей строки.

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

Ошибка netplan: неизвестный ключ nameservers и её решение

Вы столкнулись с распространённой проблемой при редактировании конфигурации сети в Ubuntu с использованием netplan. Ошибка, которую вы наблюдаете, гласит: "unknown key nameservers". Давайте разберёмся в причинах её возникновения и способах решения.

Причины возникновения ошибки

Ошибка "unknown key nameservers" указывает на то, что netplan не распознаёт ключ nameservers. Это может произойти из-за неправильного расположения ключа в YAML-файле или неверной структуры документа. YAML имеет строгие требования к отступам и структуре, что требует внимательного подхода.

Анализ предоставленного конфигурационного файла

Ваш первоначальный конфигурационный файл выглядит следующим образом:

network:
  ethernets:
    ens32:
      addresses: [172.16.120.74/16]
      nameservers:
        addresses: [127.0.0.53, 172.16.1.5]
  renderer: networkd
  version: '2'

Ошибка возникает потому, что ключ nameservers находится не на том уровне иерархии. Структура YAML требует, чтобы определение различных параметров сети было упорядочено согласно заданной схеме.

Корректная структура конфигурационного файла

Чтобы устранить эту проблему, вам следует изменить структуру вашего YAML-документа следующим образом:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens32:
      addresses:
        - 172.16.120.74/16
      nameservers:
        addresses: [127.0.0.53, 172.16.1.5]

Обратите внимание на следующие изменения:

  1. Ключи version и renderer теперь находятся выше в иерархии, что позволяет netplan правильно интерпретировать всю конфигурацию.
  2. В списке addresses использование символа - для обозначения элемента списка стало обязательным, чтобы YAML корректно воспринимал его как массив адресов.

Рекомендации по работе с YAML и netplan

  1. Строгое соблюдение отступов: Убедитесь, что все отступы выполнены консистентно. Обычно рекомендуется использовать два пробела для каждого уровня отступа.
  2. Проверка синтаксиса: После внесения изменений вы можете проверить синтаксис файла с помощью команды netplan try, чтобы убедиться, что конфигурация загружается корректно.
  3. Логи и отладка: Если возникают другие проблемы, можно просматривать системные логи с помощью команды journalctl -xe для получения дополнительной информации о возможных ошибках.

Заключение

Надеюсь, приведённое объяснение помогло вам разобраться с ошибкой "unknown key nameservers" и понять, как правильно структурировать файл конфигурации для netplan. Если у вас возникнут дополнительные вопросы или трудности, не стесняйтесь обращаться за помощью. Всегда рады помочь в решении проблем с сетевыми конфигурациями!

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

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