Dmitriy Rabotyagov b9554b1e7f Install role pre-requisite packages
Historically we were assuming some subsystems like udev or dbus
being part of the core images and never handled their installation.
However such subsystems are a hard requirement for role to succeed
and networkd to operate correctly.

To ensure all required bits in place, we've adding installation of dbus
and udev to the role in order to prevent failures on very minimal images

Change-Id: Ie77a7064d17e6aef0be16b8a5d9be5cc121b665b
2025-01-12 07:30:24 +00:00
2022-05-30 16:01:11 +02:00
2022-01-25 11:29:12 +00:00
2022-01-11 14:14:55 +00:00
2018-03-13 23:09:48 -05:00
2023-07-12 12:33:19 +02:00
2025-01-12 07:30:24 +00:00
2025-01-12 07:30:24 +00:00
2025-01-12 07:30:24 +00:00
2019-04-19 19:29:42 +00:00
2018-03-13 23:09:48 -05:00
2025-01-08 20:59:15 +00:00

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"
            - Gateway: "192.168.0.1"
              Table: 100
          routing_rules:
            - IncomingInterface: bond1
              Priority: 900
              Table: 100
          config_overrides:
            Network:
              ConfigureWithoutCarrier: true
Description
Ansible role to manage systemd networkd
Readme 1.4 MiB
Languages
Python 74.3%
Jinja 25.7%