From b6f5d9e89807f29e51434da5e0b14acf260f7088 Mon Sep 17 00:00:00 2001 From: bnolge Date: Wed, 18 Mar 2026 08:48:25 +0300 Subject: [PATCH] Add host bridge and vlans setup via template --- create-host-bridge-vlan-30-60.yml | 48 +++++++++---------------------- templates/25-br0-bind.network.j2 | 10 +++++++ 2 files changed, 23 insertions(+), 35 deletions(-) create mode 100644 templates/25-br0-bind.network.j2 diff --git a/create-host-bridge-vlan-30-60.yml b/create-host-bridge-vlan-30-60.yml index 23f75e4..e0e9fac 100644 --- a/create-host-bridge-vlan-30-60.yml +++ b/create-host-bridge-vlan-30-60.yml @@ -1,45 +1,24 @@ --- -- name: Configure systemd-networkd bridge +- name: Configure systemd-networkd with templates hosts: all become: true + vars: + network_interface: "enp2s0" + bridge_name: "br0" + vlans: [30, 60] + tasks: - - name: Create network configuration files - copy: - dest: "/etc/systemd/network/{{ item.file }}" - content: "{{ item.content }}" + - name: Deploy network configuration templates + template: + src: "templates/{{ item.src }}" + dest: "/etc/systemd/network/{{ item.dest }}" owner: root group: systemd-network mode: '0644' loop: - - file: "20-br0.netdev" - content: | - [NetDev] - Name=br0 - Kind=bridge - - [Bridge] - VLANFiltering=yes - - - file: "25-br0-bind.network" - content: | - [Match] - Name=enp2s0 - - [Network] - Bridge=br0 - - [BridgeVLAN] - VLAN=30 - [BridgeVLAN] - VLAN=60 - - - file: "30-br0-setup.network" - content: | - [Match] - Name=br0 - - [Network] - DHCP=ipv4 + - { src: '20-br0.netdev.j2', dest: '20-br0.netdev' } + - { src: '25-br0-bind.network.j2', dest: '25-br0-bind.network' } + - { src: '30-br0-setup.network.j2', dest: '30-br0-setup.network' } notify: restart networkd handlers: @@ -47,4 +26,3 @@ systemd: name: systemd-networkd state: restarted - enabled: true diff --git a/templates/25-br0-bind.network.j2 b/templates/25-br0-bind.network.j2 new file mode 100644 index 0000000..f07f88c --- /dev/null +++ b/templates/25-br0-bind.network.j2 @@ -0,0 +1,10 @@ +[Match] +Name={{ network_interface }} + +[Network] +Bridge={{ bridge_name }} + +{% for vlan in vlans %} +[BridgeVLAN] +VLAN={{ vlan }} +{% endfor %}