Files
ansible-role-systemd_networkd/README.md
T
Dmitriy Rabotyagov 852739df6d Liberalize static_route defenition
At the moment a very limited amount of options are supported for
static_routes defenition, which might be a limiting factor in some more
complex solutions.

It is proposed to let operators define `static_routes` with parameters
that are available in systemd-networkd [1] directly, which should
provide required flexbility and not require us additional maintenance
and regular updates of the code.

[1] https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html#%5BRoute%5D%20Section%20Options

Change-Id: I71f81cb497ae8eeb0fab2bc6f9f5eae120d10775
2025-01-06 16:24:18 +00:00

1.8 KiB

Ansible systemd_networkd

This Ansible role configures systemd-networkd link, network, and netdev files.

This role requires the ansible-config_template collection to be available on your local system.

To get collection you can use use the ansible-galaxy command on the requirements.yml file.. You need to install collection before running this role.

# ansible-galaxy install -r requirements.yml

Release notes for the project can be found at: https://docs.openstack.org/releasenotes/ansible-role-systemd_networkd


Example playbook

See the "defaults.yml" file for a full list of all available options.

- name: Create a systemd-networkd interfaces
  hosts: localhost
  become: true
  roles:
    - role: "systemd_networkd"
      systemd_netdevs:
        - NetDev:
            Name: dummy0
            Kind: dummy
        - NetDev:
            Name: dummy1
            Kind: dummy
        - NetDev:
            Name: bond0
            Kind: bond
          Bond:
            Mode: 802.3ad
            TransmitHashPolicy: layer3+4
            MIIMonitorSec: 1s
            LACPTransmitRate: fast
        - NetDev:
            Name: br-dummy
            Kind: bridge
      systemd_networks:
        - interface: "dummy0"
          bond: "bond0"
          mtu: 9000
        - interface: "dummy1"
          bond: "bond0"
          mtu: 9000
        - interface: "bond0"
          bridge: "br-dummy"
          mtu: 9000
        - interface: "br-dummy"
          address: "10.0.0.100"
          netmask: "255.255.255.0"
          gateway: "10.0.0.1"
          mtu: 9000
          usedns: true
          static_routes:
            - Gateway: "10.1.0.1"
              Destination: "10.1.0.0/24"
          config_overrides:
            Network:
              ConfigureWithoutCarrier: true