Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


public:instance-data-json-to-networkd

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

public:instance-data-json-to-networkd [2026/05/02 21:13] (aktuell)
ingo_wichmann angelegt
Zeile 1: Zeile 1:
 +So kann die IPv4 Konfiguration auf Hetzner VMs aussehen:
 +<file txt /​etc/​systemd/​network/​eth0.network>​
 +[Match]
 +Name=e*
 +Type=ether
 +
 +[Network]
 +DHCP=ipv4
 +</​file>​
 +
 +Diese Datei will ich jetzt um die IPv6 Konfiguration ergänzen. Auf VMs von Hetzner liegt folgende Datei:
 +<file json /​run/​cloud-init/​instance-data.json>​
 +{
 + "​base64_encoded_keys":​ [
 +  "​merged_cfg/​random_seed/​data"​
 + ],
 + "​ds":​ {
 +  "​_doc":​ "​EXPERIMENTAL:​ The structure and format of content scoped under the '​ds'​ key may change in subsequent releases of cloud-init.",​
 +  "​meta_data":​ {
 +   "​instance-id":​ xxxxxx,
 +   "​local-hostname":​ "​xxxxxxx",​
 +   "​network-config":​ {
 +    "​config":​ [
 +     {
 +      "​mac_address":​ "​aa:​bb:​cc:​dd:​ee:​ff",​
 +      "​name":​ "​eth0",​
 +      "​subnets":​ [
 +       {
 +        "​dns_nameservers":​ [
 +         "​213.133.99.99",​
 +         "​213.133.98.98",​
 +         "​213.133.100.100"​
 +        ],
 +        "​ipv4":​ true,
 +        "​type":​ "​dhcp"​
 +       },
 +       {
 +        "​address":​ "​2a01:​4f8:​xxxx:​xxxx::​1/​64",​
 +        "​gateway":​ "​fe80::​1",​
 +        "​ipv6":​ true,
 +        "​type":​ "​static"​
 +       }
 +      ],
 +      "​type":​ "​physical"​
 +     }
 +    ],
 +    "​version":​ 1
 +   },
 +
 +</​file>​
 +
 +Da möchte ich die für systemd-networkd relevanten Daten raus extrahieren und IPv6 Adresse sowie Gateway an die /​etc/​systemd/​network/​eth0.network anhängen:
 +
 +  jq -r '​.ds.meta_data."​network-config"​.config[].subnets[] | select(.ipv6 == true) | "​Address=\(.address)\nGateway=\(.gateway)"'​ /​run/​cloud-init/​instance-data.json >> /​run/​cloud-init/​instance-data.json >> /​etc/​systemd/​network/​eth0.network
  
public/instance-data-json-to-networkd.txt · Zuletzt geändert: 2026/05/02 21:13 von ingo_wichmann