aruhier.systemd_networkd
Ansible Rolle: systemd_networkd
Ansible Rolle zur Konfiguration von systemd-networkd.
Rollenvariablen
# Links
systemd_networkd_link: {}
# Netdevs
systemd_networkd_netdev: {}
# Netzwerke
systemd_networkd_network: {}
# Muss die Rolle systemd-networkd neu starten, um die neue Konfiguration anzuwenden?
systemd_networkd_apply_config: false
# systemd_resolved aktivieren oder nicht
systemd_networkd_enable_resolved: true
# Konfigurationsdateien mit einem Präfix entfernen
systemd_networkd_cleanup: false
systemd_networkd_cleanup_prefix: ''
systemd_networkd_cleanup_prefix_is_regex: false
Abhängigkeiten
Keine
Beispiel-Playbook
- Konfigurieren eines Netzwerkinterfaces
systemd_networkd_network:
eth0:
- Match:
- Name: "eth0"
- Network:
- DHCP: "nein"
- IPv6AcceptRouterAdvertisements: "nein"
- DNS: 8.8.8.8
- DNS: 8.8.4.4
- Domains: "deine.tld"
- Address: "192.0.2.176/24"
- Gateway: "192.0.2.1"
- Address: "2001:db8::302/64"
- Address: "fc00:0:0:103::302/64"
- Gateway: "2001:db8::1"
Es wird eine eth0.network
-Datei unter /etc/systemd/network/
erstellt und
systemd-networkd
sowie systemd-resolved
aktiviert.
Jeder Schlüssel unter systemd_networkd_*
entspricht dem zu erstellenden Dateinamen
(.network
in systemd_networkd_network
, .link
in systemd_networkd_link
usw.).
Jeder Schlüssel unter dem Dateinamen ist ein Abschnitt, der in systemd-networkd dokumentiert ist,
der Paare von Option: Wert
enthält. Jedes Paar wird dann in das Format Option=Wert
umgewandelt.
- Konfigurieren eines Bonding-Interfaces
systemd_networkd_netdev:
bond0:
- NetDev:
- Name: "bond0"
- Kind: "bond"
- Bond:
- Mode: "802.3ad"
- LACPTransmitRate: "fast"
systemd_networkd_network:
bond0:
- Match:
- Name: "eth*"
- Network:
- DHCP: "ja"
- Bond: "bond0"
Dies erstellt ein LACP-Bond-Interface bond0
, das alle Interfaces enthält, die mit eth
beginnen.
- Konfigurieren des routing basierend auf Schnittstellen
systemd_networkd_conf:
route_tables:
- Network:
- RouteTable: "rtvlan10:10"
- RouteTable: "rtvlan11:11"
systemd_networkd_netdev:
netdev_bond0:
- NetDev:
- Name: bond0
- Kind: bond
- Bond:
- Mode: active-backup
- MIIMonitorSec: 0.1
- UpDelaySec: 0.2
- DownDelaySec: 0.2
- LACPTransmitRate: fast
- TransmitHashPolicy: layer2+3
netdev_vlan10:
- NetDev:
- Name: netdev_vlan10
- Kind: vlan
- VLAN:
- Id: 10
netdev_vlan11:
- NetDev:
- Name: netdev_vlan11
- Kind: vlan
- VLAN:
- Id: 11
netdev_bridge_vm_vlan10:
- NetDev:
- Name: netdev_bridge_vlan10
- Kind: bridge
netdev_bridge_vm_vlan11:
- NetDev:
- Name: netdev_bridge_vlan11
- Kind: bridge
systemd_networkd_network:
# Physische Interfaces
eno3:
- Match:
- Name: eno3
- Network:
- Bond: bond0
eno4:
- Match:
- Name: eno4
- Network:
- Bond: bond0
bond0:
- Match:
- Name: bond0
- Network:
- Description: "Statisches/Unkonfiguriertes Bond für eno3 & eno4"
# Wir möchten keine IP "auf" dem Bond selbst
- LinkLocalAddressing: "nein"
- LLDP: "nein"
- EmitLLDP: "nein"
- IPv6AcceptRA: "nein"
- IPv6SendRA: "nein"
- VLAN: netdev_vlan10
- VLAN: netdev_vlan11
network_interface_vlan10:
- Match:
- Name: netdev_vlan10
- Type: vlan
- Network:
- Description: "Netzwerkschnittstelle auf vlan10, verbunden mit netdev_bridge_vm_vlan10"
- Bridge: "netdev_bridge_vm_vlan10"
- DHCP: "nein"
- DNS: &gw_vlan10 "10.0.10.1"
- Address: "10.0.10.161/24"
- DNS: *gw_vlan10
- Gateway: *gw_vlan10
network_interface_vlan11:
- Match:
- Name: netdev_vlan11
- Type: vlan
- Network:
- Description: "Netzwerkschnittstelle auf vlan11, verbunden mit netdev_bridge_vm_vlan11"
- Bridge: "netdev_bridge_vm_vlan11"
- DHCP: "nein"
- DNS: &gw_vlan11 "10.0.11.1"
- Address: "10.0.11.161/24"
- DNS: *gw_vlan11
- Gateway: *gw_vlan11
systemd_networkd_rt_tables:
- id: 11
name: rtvlan11
- id: 20
name: rtvlan20
systemd-resolved
Standardmäßig verwaltet diese Rolle /etc/resolv.conf
und /etc/nsswitch.conf
, um den DNS-Stub-Resolver und die NSS-Module von systemd-resolved
zu verwenden.
Dieses Verhalten kann deaktiviert werden, indem systemd_networkd_symlink_resolv_conf
und
systemd_networkd_manage_nsswitch_config
auf false
gesetzt werden oder die Reihenfolge der Auflösung geändert werden kann.
Die Standardkonfiguration verwendet die Standarddatenbank files
und systemd-Module, wo dies angemessen ist:
systemd_networkd_nsswitch_passwd: "files systemd"
systemd_networkd_nsswitch_group: "files systemd"
systemd_networkd_nsswitch_shadow: "files systemd"
systemd_networkd_nsswitch_gshadow: "files systemd"
systemd_networkd_nsswitch_hosts: "files resolve [!UNAVAIL=return] myhostname dns"
systemd_networkd_nsswitch_networks: "files dns"
systemd_networkd_nsswitch_protocols: "files"
systemd_networkd_nsswitch_services: "files"
systemd_networkd_nsswitch_ethers: "files"
systemd_networkd_nsswitch_rpc: "files"
systemd_networkd_nsswitch_netgroup: "nis"
systemd_networkd_nsswitch_automount: "files"
systemd_networkd_nsswitch_aliases: "files"
systemd_networkd_nsswitch_publickey: "files"
Lizenz
Tool unter der BSD-Lizenz. Zögere nicht, Fehler zu melden, mir Fragen zu stellen oder einen Pull-Request zu machen, wenn du möchtest!
ansible-galaxy install aruhier.systemd_networkd