From 704850caa94f2c0e9946d1fbdfa7cff0191aac87 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Mon, 23 Jul 2018 17:32:12 -0500 Subject: [PATCH] roles/net-ifaces: Configure virtual net interfaces The *net-ifaces* role manages a script that creates virtual network interfaces, such as bridge, bond, and VLAN, that `dhcpcd`/`dhclient` alone cannot. This provides a lightweight alternative to *systemd-networkd* and *NetworkMangager*. --- roles/net-ifaces/files/net-ifaces.service | 11 +++++++++++ roles/net-ifaces/handlers/main.yml | 2 ++ roles/net-ifaces/tasks/main.yml | 17 +++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 roles/net-ifaces/files/net-ifaces.service create mode 100644 roles/net-ifaces/handlers/main.yml create mode 100644 roles/net-ifaces/tasks/main.yml diff --git a/roles/net-ifaces/files/net-ifaces.service b/roles/net-ifaces/files/net-ifaces.service new file mode 100644 index 0000000..3ac3960 --- /dev/null +++ b/roles/net-ifaces/files/net-ifaces.service @@ -0,0 +1,11 @@ +[Unit] +Description=Create virtual network interfaces +Before=network.target network-online.target dhcpcd.service + +[Service] +Type=oneshot +ExecStart=/usr/local/libexec/net-ifaces.sh +RemainAfterExit=true + +[Install] +WantedBy=network.target diff --git a/roles/net-ifaces/handlers/main.yml b/roles/net-ifaces/handlers/main.yml new file mode 100644 index 0000000..8d4e1e3 --- /dev/null +++ b/roles/net-ifaces/handlers/main.yml @@ -0,0 +1,2 @@ +- name: reload systemd + command: systemctl daemon-reload diff --git a/roles/net-ifaces/tasks/main.yml b/roles/net-ifaces/tasks/main.yml new file mode 100644 index 0000000..da397bd --- /dev/null +++ b/roles/net-ifaces/tasks/main.yml @@ -0,0 +1,17 @@ +- name: ensure net-ifaces script is installed + copy: + src={{ inventory_hostname }}.sh + dest=/usr/local/libexec/net-ifaces.sh + mode=0755 + +- name: ensure net-ifaces systemd unit is installed + copy: + src=net-ifaces.service + dest=/etc/systemd/system/net-ifaces.service + mode=0644 + notify: reload systemd + +- name: ensure net-ifaces service starts at boot + service: + name=net-ifaces + enabled=yes