无效的 YAML:此上下文中不允许使用映射值:网络:

无效的 YAML:此上下文中不允许使用映射值:网络:

我正在尝试配置静态 IP,但当我尝试执行更改时,始终出现此错误:

Invalid YAML: mapping values are not allowed in this context:
network:
       ^

我已将我的编辑/etc/netplan/00-installer-config.yaml为:

network:
 version: 2
 ethernets:
  eno1:
   dhcp4: false
   addresses: [192.168.20.6/24]
   gateway4: 192.168.20.2
   nameservers:
    addresses: [8.8.8.8,8.8.4.4,192.168.20.2]

使用本指南对于此配置,但我还遵循了许多其他指南,每次都得到相同的结果。

全部我读过的其他与此问题相关的问题与不正确的缩进或间距有关,但我看不出我哪里做错了。我遵循了几个不同的示例,并多次重写了文件,以确保我没有遗漏任何空格,但每次我得到的结果都相同。

答案1

您的内容/etc/netplan/00-installer-config.yaml应该看起来像这样。Netplan 对格式非常挑剔。请完全按照我展示的方式使用我的 .yaml。

  • 2 个空格缩进
  • 没有标签
  • 添加了“渲染器:网络化”
  • “dhcp4: false” 不是必需的,因为 false 是默认值
  • [192.168.20.6/24] 括起来
  • 名称服务器地址中的逗号后有空格

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      addresses: [192.168.20.6/24]
      gateway4: 192.168.20.2
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4, 192.168.20.2]

sudo netplan --debug generate

sudo netplan apply

reboot

答案2

我认为您的 yaml 文件无效,原因正是您怀疑的:缩进和空格。您的文件部分内容如下:

network:
 version: 2
 ethernets:
  eno1:

请注意,缩进是下面一个空格网络:. 比较提供的模板:

cat /usr/share/doc/netplan/examples/static.yaml 

其中部分内容如下:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:

请注意,在任何情况下,缩进都是(除了域名服务器),两个空格。我建议您将文件修改为:

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      addresses:
        - 192.168.20.6/24
      gateway4: 192.168.20.2
      nameservers:
          addresses: [8.8.8.8,8.8.4.4,192.168.20.2]
      

Netplan 还非常具体,它允许文件中有空格,但不允许有制表符。请按照以下步骤操作:

sudo netplan generate
sudo netplan apply  

请参见:https://netplan.io/examples

相关内容