Dmitriy Rabotyagov 3a6325a197 Add routing policy management for interfaces
In case of complex configurations it might be required to support
multiple routing tables and create policies for marking traffic.

The patch implements `routing_rules` key for the systemd network which
can be used for this purpose.

Change-Id: I2632eb035e3fa78120660aaab7241fc541e03c63
2025-01-06 19:04:56 +00:00

79 lines
2.0 KiB
Markdown

#### 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.
``` bash
# 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.
``` yaml
- 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"
- Gateway: "192.168.0.1"
Table: 100
routing_rules:
- IncomingInterface: bond1
Priority: 900
Table: 100
config_overrides:
Network:
ConfigureWithoutCarrier: true
```