31 lines
1.4 KiB
YAML
31 lines
1.4 KiB
YAML
|
---
|
||
|
- name: network-interfaces | Manage additional network interfaces, Ubuntu style
|
||
|
tags:
|
||
|
- network_interface
|
||
|
- networking
|
||
|
when:
|
||
|
- ansible_distribution == 'Ubuntu'
|
||
|
- ubuntu_configure_additional_interfaces
|
||
|
block:
|
||
|
- name: network-interfaces | Check if netplan is in use
|
||
|
ansible.builtin.stat:
|
||
|
path: /etc/netplan
|
||
|
register: netplan_in_use
|
||
|
- name: network-interfaces | Check if additional interfaces have been defined
|
||
|
ansible.builtin.set_fact:
|
||
|
net_ints: "{% for i in ansible_interfaces %}{% if i != ansible_lo.device or i != ansible_default_ipv4.interface %}{{ i }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||
|
when: netplan_in_use.stat.isdir
|
||
|
- name: network-interfaces | Create a dictionary of additional interfaces
|
||
|
ansible.builtin.set_fact:
|
||
|
new_ints: "[{% for i in ansible_interfaces %}{% if i != ansible_lo.device or i != ansible_default_ipv4.interface %}{{ i }}{% if not loop.last %},{% endif %}{% endfor %}]"
|
||
|
when: net_ints is not defined or net_ints == None or net_ints | length == 0
|
||
|
- name: network-interfaces | Install the network interface file
|
||
|
ansible.builtin.template:
|
||
|
src: 70-ansible.yaml.j2
|
||
|
dest: /etc/netplan/70-ansible.yaml
|
||
|
owner: root
|
||
|
group: root
|
||
|
mode: "0644"
|
||
|
when: net_ints is not defined or net_ints == None or net_ints | length == 0
|
||
|
notify: Netplan Apply
|