Ansible role to manage systemd networkd
Go to file
Kevin Carter b0395c727e Update cleanup process and set a file prefix
The interface cleanup was generating a script that could be used to run
a cleanup whenever required. While this worked it would rapidly become
out of date, especially when multiple roles are calling this role. This
change adds a prefix which deployer can use to ensure the network
interface files are marked which will ensure we're limiting the
possibility of collisions.

The cleanup process will now use this prefix to search for and remove
any network interface file that matches the given prefix.

Change-Id: Ife5c179d27925cd2e71d3d086a731e6c13b12965
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2018-05-19 05:40:48 +00:00
defaults Update cleanup process and set a file prefix 2018-05-19 05:40:48 +00:00
doc Add base role tests 2018-03-21 00:18:24 -05:00
examples update example playbook to mirror a prod network 2018-03-16 02:11:38 -05:00
handlers Update role so we're not reloading the daemon in excess 2018-05-18 22:16:02 -05:00
html-docs first commit 2018-03-13 23:09:48 -05:00
meta Add Bionic testing 2018-05-14 20:44:38 +02:00
releasenotes Add base role tests 2018-03-21 00:18:24 -05:00
tasks Update cleanup process and set a file prefix 2018-05-19 05:40:48 +00:00
templates Update cleanup process and set a file prefix 2018-05-19 05:40:48 +00:00
tests Update cleanup process and set a file prefix 2018-05-19 05:40:48 +00:00
vars Make the networkd role distro agnostic 2018-05-14 15:28:08 -05:00
zuul.d Add Bionic testing 2018-05-14 20:44:38 +02:00
.gitignore Updated from OpenStack Ansible Tests 2018-03-28 09:23:32 +00:00
.gitreview Fix gitreview repo name 2018-03-19 14:43:54 -05:00
CONTRIBUTING.rst first commit 2018-03-13 23:09:48 -05:00
LICENSE first commit 2018-03-13 23:09:48 -05:00
README.md first commit 2018-03-13 23:09:48 -05:00
Vagrantfile Updated from OpenStack Ansible Tests 2018-05-09 19:45:05 +00:00
ansible-role-requirements.yaml first commit 2018-03-13 23:09:48 -05:00
bindep.txt Add base role tests 2018-03-21 00:18:24 -05:00
manual-test.rc first commit 2018-03-13 23:09:48 -05:00
run_tests.sh Updated from OpenStack Ansible Tests 2018-04-30 05:18:31 +00:00
setup.cfg Add base role tests 2018-03-21 00:18:24 -05:00
setup.py first commit 2018-03-13 23:09:48 -05:00
test-requirements.txt first commit 2018-03-13 23:09:48 -05:00
tox.ini Update run_tests.sh and remove tests-repo-clone.sh 2018-03-27 23:11:57 +01:00

README.md

Ansible systemd_networkd

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

This role requires the openstack-ansible-plugins repository to be available on your local system. The Ansible galaxy resolver will not retrieve this role for you. To get the plugins role in place clone the plugins repository before running this role.

# git clone https://github.com/openstack/openstack-ansible-plugins /etc/ansible/roles/plugins

You can also use the ansible-galaxy command on the ansible-role-requirements.yml file.

# ansible-galaxy install -r ansible-role-requirements.yml

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"
              cidr: "10.1.0.0/24"
          config_overrides:
            Network:
              ConfigureWithoutCarrier: true