微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何向yaml中的特定键添加多个值?尼普兰相关

如何解决如何向yaml中的特定键添加多个值?尼普兰相关

我正在尝试在 Linux 中配置 IPv6 地址,但我很困惑如何将值添加到 netplan 的 YAML 文件中,这是文件

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      addresses: [155.128.134.198/23,'2002:18f0:b009:f84:5200:03ff:fdf7:d0c2/64']
      gateway4: 155.128.134.198
      nameservers:
        addresses: [108.61.10.10]
      routes:
      - to: 169.254.0.0/16
        via: 155.138.148.1
        metric: 100

我想在键 addresses添加 IPv6 地址,但要保留这些地址。是否可以通过 yq 或以任何其他方式进行一些简单的操作,以便我可以从中执行 bash 脚本?我还没有找到任何工具,它是 netplan 的特定工具,可以轻松地在该范围内添加地址。任何帮助将不胜感激。

解决方法

要从 shell 脚本追加,似乎可以使用最新版本的 yq

我可以按如下方式附加到它:

$ yq e '.network.ethernets.ens3.addresses += "127.0.0.1/32"' myyaml.yml 
network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      addresses: [155.128.134.198/23,'2002:18f0:b009:f84:5200:03ff:fdf7:d0c2/64',127.0.0.1/32]
      gateway4: 155.128.134.198
      nameservers:
        addresses: [108.61.10.10]
      routes:
        - to: 169.254.0.0/16
          via: 155.138.148.1
          metric: 100

请注意,这不会更新实际文件,您可以将该输出通过管道传输到新文件,也可以使用 -i 标志就地更新它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。