Вопрос или проблема
В настоящее время это то, что у меня есть в виртуальной машине с Ubuntu. Я следовал руководству из видео, которое смотрю, но оно продолжает говорить, что есть синтаксическая ошибка. Я проверял это несколько раз и сделал новую установку, но ошибка всё равно остается.
Синтаксис файлов 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 файле. А также проверьте, что количество пробелов на каждом уровне вложенности одинаково, что способствует легкости понимания программы разметки.
-
Откройте ваш файл Netplan, обычно расположенный в
/etc/netplan/01-netcfg.yaml
. -
Убедитесь, что ваша конфигурация соответствует правилам, представленным в примере. Попробуйте следовать такому формату отступов, чтобы избежать ошибок:
- Все элементы одного уровня (например, ключи
ethernets
,addresses
,nameservers
и т.д.) должны иметь одинаковый отступ. - Следите за конфигурацией ваших IP-адресов и маршрутов, они должны быть определены в скобках или перечислены с дефисами для списка.
- После того как все исправления сделаны, примените конфигурацию с помощью команд:
sudo netplan try
sudo netplan apply
sudo netplan try
позволяет временно применить изменения для проверки. Если все работает исправно, вы можете продолжить, применяя изменения постоянно командой sudo netplan apply
.
- Убедитесь, что настройки IP действительны, используя команду
ip address
илиnetplan status
.
Подводя итог, настройка статических IP требует внимательности к соблюдению синтаксиса YAML, особенно касающихся пробелов и структуры, чтобы избежать ошибок. Если вы все еще сталкиваетесь с проблемами, рекомендуется просмотреть официальную документацию Netplan для получения более детальной информации и примеров.