Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| — |
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 | ||