54 lines
2.4 KiB
YAML
54 lines
2.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 and i != ansible_default_ipv4.interface %}"{{ i }}"{% if not loop.last %},{% endif %}{% 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 and i != ansible_default_ipv4.interface %}"{{ i }}"{% if not loop.last %},{% endif %}{% endif %}{% endfor %}]'
|
|
when: net_ints is defined and net_ints | length != 0
|
|
- name: network-interfaces | Print the loopback interface name
|
|
ansible.builtin.debug:
|
|
msg: "Loopback interface: {{ ansible_lo.device }}"
|
|
- name: network-interfaces | Print the name of the default interface
|
|
ansible.builtin.debug:
|
|
msg: "Loopback interface: {{ ansible_default_ipv4.interface }}"
|
|
- name: network-interfaces | List of interfaces other than the default one
|
|
ansible.builtin.debug:
|
|
msg: "Interfaces list: {{ new_ints }}"
|
|
- name: network-interfaces | Override the interfaces list
|
|
ansible.builtin.set_fact:
|
|
new_ints: "{{ ubuntu_configure_additional_ints_list }}"
|
|
when: ubuntu_configure_additional_ints_list | length != 0
|
|
- name: network-interfaces | List of interfaces that we are going to configure
|
|
ansible.builtin.debug:
|
|
msg: "Interfaces list: {{ new_ints }}"
|
|
when: ubuntu_configure_additional_ints_list | length != 0
|
|
- name: network-interfaces | Install the network interface file
|
|
ansible.builtin.template:
|
|
src: netplan-70-ansible.yaml.j2
|
|
dest: /etc/netplan/70-ansible.yaml
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
when: new_ints | length != 0
|
|
notify: Netplan Apply
|
|
|
|
- name: network-interfaces | Force the Netplan Apply command execution
|
|
ansible.builtin.meta: flush_handlers
|
|
tags:
|
|
- network_interface
|
|
- networking
|