Merge "Update cleanup process and set a file prefix"
This commit is contained in:
commit
305db5348e
@ -13,15 +13,23 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# Cleanup all known network interfaces
|
# Cleanup all known network interfaces. When this option is enabled the role
|
||||||
|
# will search for and remove all network interface files that match the prefix.
|
||||||
systemd_interface_cleanup: false
|
systemd_interface_cleanup: false
|
||||||
|
|
||||||
|
# Prefix for all networkd files created by this role. This prefix allows
|
||||||
|
# deployers to set specific file names reducing the chance of a collision
|
||||||
|
# and simplifies the network interface file cleanup operation should it ever
|
||||||
|
# be needed. By default, the prefix is "general" however this can be changed
|
||||||
|
# to meet the needs of the deployer.
|
||||||
|
systemd_networkd_prefix: "general"
|
||||||
|
|
||||||
# Enable systemd-networkd and (re)start the service
|
# Enable systemd-networkd and (re)start the service
|
||||||
systemd_run_networkd: false
|
systemd_run_networkd: false
|
||||||
|
|
||||||
# Default filename formatting
|
# Default filename formatting
|
||||||
systemd_networkd_netdev_filename: "{{ item.0 }}-{{ item.1.NetDev.Name }}.netdev"
|
systemd_networkd_netdev_filename: "{{ item.0 }}-{{ systemd_networkd_prefix }}-{{ item.1.NetDev.Name }}.netdev"
|
||||||
systemd_networkd_network_filename: "{{ item.0 }}-{{ item.1.interface }}.network"
|
systemd_networkd_network_filename: "{{ item.0 }}-{{ systemd_networkd_prefix }}-{{ item.1.interface }}.network"
|
||||||
|
|
||||||
# The `systemd_link_config_overrides` option can be used on the default link.
|
# The `systemd_link_config_overrides` option can be used on the default link.
|
||||||
# See the following link for all available options:
|
# See the following link for all available options:
|
||||||
|
@ -61,18 +61,6 @@
|
|||||||
tags:
|
tags:
|
||||||
- systemd-networkd
|
- systemd-networkd
|
||||||
|
|
||||||
- name: Create systemd-networkd interface cleanup script
|
|
||||||
template:
|
|
||||||
src: "interface-cleanup.sh.j2"
|
|
||||||
dest: "/usr/local/bin/interface-cleanup"
|
|
||||||
owner: "root"
|
|
||||||
group: "root"
|
|
||||||
mode: "0750"
|
|
||||||
when:
|
|
||||||
- systemd_interface_cleanup | bool
|
|
||||||
tags:
|
|
||||||
- systemd-networkd
|
|
||||||
|
|
||||||
- name: Create systemd-resolved config
|
- name: Create systemd-resolved config
|
||||||
template:
|
template:
|
||||||
src: "systemd-resolved.conf.j2"
|
src: "systemd-resolved.conf.j2"
|
||||||
@ -87,14 +75,28 @@
|
|||||||
tags:
|
tags:
|
||||||
- systemd-resolved
|
- systemd-resolved
|
||||||
|
|
||||||
- name: Run interface cleanup script
|
- name: Find prefixed netdev and network files
|
||||||
command: "/usr/local/bin/interface-cleanup"
|
find:
|
||||||
failed_when: false
|
paths: "/etc/systemd/network"
|
||||||
|
patterns: "*{{ systemd_networkd_prefix }}*.netdev,*{{ systemd_networkd_prefix }}*.network"
|
||||||
|
register: networkd_files
|
||||||
when:
|
when:
|
||||||
- systemd_interface_cleanup | bool
|
- systemd_interface_cleanup | bool
|
||||||
tags:
|
tags:
|
||||||
- systemd-networkd
|
- systemd-networkd
|
||||||
|
|
||||||
|
- name: Remove prefixed network files
|
||||||
|
file:
|
||||||
|
path: "{{ item.path }}"
|
||||||
|
state: absent
|
||||||
|
with_items: "{{ networkd_files.files }}"
|
||||||
|
when:
|
||||||
|
- systemd_interface_cleanup | bool
|
||||||
|
notify:
|
||||||
|
- Restart systemd-networkd
|
||||||
|
tags:
|
||||||
|
- systemd-networkd
|
||||||
|
|
||||||
- name: Create systemd-networkd network device(s)
|
- name: Create systemd-networkd network device(s)
|
||||||
template:
|
template:
|
||||||
src: "systemd-netdev.j2"
|
src: "systemd-netdev.j2"
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# {{ ansible_managed }}
|
|
||||||
|
|
||||||
{% for item in systemd_netdevs %}
|
|
||||||
if [[ -f "/etc/systemd/network/{{ loop.index }}-{{ item.NetDev.Name }}.netdev" ]]; then
|
|
||||||
rm -f "/etc/systemd/network/{{ loop.index }}-{{ item.NetDev.Name }}.netdev"
|
|
||||||
fi
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% for item in systemd_networks %}
|
|
||||||
if [[ -f "/etc/systemd/network/{{ loop.index }}-{{ item.interface }}.network" ]]; then
|
|
||||||
rm -f "/etc/systemd/network/{{ loop.index }}-{{ item.interface }}.network"
|
|
||||||
fi
|
|
||||||
{% endfor %}
|
|
@ -50,6 +50,12 @@
|
|||||||
- NetDev:
|
- NetDev:
|
||||||
Name: br-dummy
|
Name: br-dummy
|
||||||
Kind: bridge
|
Kind: bridge
|
||||||
|
- NetDev:
|
||||||
|
Name: dummy2
|
||||||
|
Kind: dummy
|
||||||
|
- NetDev:
|
||||||
|
Name: br-test
|
||||||
|
Kind: bridge
|
||||||
systemd_networks:
|
systemd_networks:
|
||||||
- interface: "dummy0"
|
- interface: "dummy0"
|
||||||
bond: "bond0"
|
bond: "bond0"
|
||||||
@ -72,6 +78,12 @@
|
|||||||
config_overrides:
|
config_overrides:
|
||||||
Network:
|
Network:
|
||||||
ConfigureWithoutCarrier: true
|
ConfigureWithoutCarrier: true
|
||||||
|
- interface: "dummy2"
|
||||||
|
bridge: "br-test"
|
||||||
|
- interface: "br-test"
|
||||||
|
address: "10.1.0.1"
|
||||||
|
netmask: "255.255.255.0"
|
||||||
|
|
||||||
|
|
||||||
- name: Test networkd
|
- name: Test networkd
|
||||||
hosts: localhost
|
hosts: localhost
|
||||||
@ -88,6 +100,8 @@
|
|||||||
- ansible_dummy1['active'] == true
|
- ansible_dummy1['active'] == true
|
||||||
- ansible_dummy1['type'] == 'ether'
|
- ansible_dummy1['type'] == 'ether'
|
||||||
- ansible_dummy1['mtu'] == 9000
|
- ansible_dummy1['mtu'] == 9000
|
||||||
|
- ansible_dummy2['active'] == true
|
||||||
|
- ansible_dummy2['type'] == 'ether'
|
||||||
- name: Bond check
|
- name: Bond check
|
||||||
assert:
|
assert:
|
||||||
that:
|
that:
|
||||||
@ -101,3 +115,49 @@
|
|||||||
- ansible_br_dummy['type'] == 'bridge'
|
- ansible_br_dummy['type'] == 'bridge'
|
||||||
- ansible_br_dummy['ipv4']['address'] == '10.0.0.100'
|
- ansible_br_dummy['ipv4']['address'] == '10.0.0.100'
|
||||||
- ansible_br_dummy['ipv4']['netmask'] == '255.255.255.0'
|
- ansible_br_dummy['ipv4']['netmask'] == '255.255.255.0'
|
||||||
|
- name: Bridge check
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- ansible_br_test['active'] == true
|
||||||
|
- ansible_br_test['type'] == 'bridge'
|
||||||
|
- ansible_br_test['ipv4']['address'] == '10.1.0.1'
|
||||||
|
- ansible_br_test['ipv4']['netmask'] == '255.255.255.0'
|
||||||
|
|
||||||
|
|
||||||
|
- name: Playbook for role testing with cleanup
|
||||||
|
hosts: localhost
|
||||||
|
connection: local
|
||||||
|
become: true
|
||||||
|
gather_facts: true
|
||||||
|
roles:
|
||||||
|
- role: "systemd_networkd"
|
||||||
|
post_tasks:
|
||||||
|
- name: Interface check
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- ansible_br_test is defined
|
||||||
|
- ansible_dummy2['active'] == true
|
||||||
|
- ansible_dummy2['type'] == 'ether'
|
||||||
|
- name: Bridge check
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- ansible_br_test['active'] == true
|
||||||
|
- ansible_br_test['type'] == 'bridge'
|
||||||
|
- ansible_br_test['ipv4']['address'] == '10.1.0.1'
|
||||||
|
- ansible_br_test['ipv4']['netmask'] == '255.255.255.0'
|
||||||
|
vars:
|
||||||
|
systemd_interface_cleanup: true
|
||||||
|
systemd_run_networkd: yes
|
||||||
|
systemd_netdevs:
|
||||||
|
- NetDev:
|
||||||
|
Name: dummy2
|
||||||
|
Kind: dummy
|
||||||
|
- NetDev:
|
||||||
|
Name: br-test
|
||||||
|
Kind: bridge
|
||||||
|
systemd_networks:
|
||||||
|
- interface: "dummyX"
|
||||||
|
bridge: "br-test"
|
||||||
|
- interface: "br-test"
|
||||||
|
address: "10.1.0.1"
|
||||||
|
netmask: "255.255.255.0"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user