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

  1. 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.

  1. 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.

  1. 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!

Über das Projekt

Configures systemd-networkd

Installieren
ansible-galaxy install aruhier.systemd_networkd
Lizenz
other
Downloads
2.8k
Besitzer