Вопрос или проблема
У меня есть ошибка, но не орфографическая ошибка.
Вот моя конфигурация 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]
Обратите внимание на следующие изменения:
- Ключи
version
иrenderer
теперь находятся выше в иерархии, что позволяет netplan правильно интерпретировать всю конфигурацию. - В списке
addresses
использование символа-
для обозначения элемента списка стало обязательным, чтобы YAML корректно воспринимал его как массив адресов.
Рекомендации по работе с YAML и netplan
- Строгое соблюдение отступов: Убедитесь, что все отступы выполнены консистентно. Обычно рекомендуется использовать два пробела для каждого уровня отступа.
- Проверка синтаксиса: После внесения изменений вы можете проверить синтаксис файла с помощью команды
netplan try
, чтобы убедиться, что конфигурация загружается корректно. - Логи и отладка: Если возникают другие проблемы, можно просматривать системные логи с помощью команды
journalctl -xe
для получения дополнительной информации о возможных ошибках.
Заключение
Надеюсь, приведённое объяснение помогло вам разобраться с ошибкой "unknown key nameservers" и понять, как правильно структурировать файл конфигурации для netplan. Если у вас возникнут дополнительные вопросы или трудности, не стесняйтесь обращаться за помощью. Всегда рады помочь в решении проблем с сетевыми конфигурациями!