132 lines
3.9 KiB
YAML
132 lines
3.9 KiB
YAML
#- name: "Create base network configuration"
|
|
# copy:
|
|
# src: files/etc/network/interfaces
|
|
# dest: /etc/network/interfaces
|
|
# owner: root
|
|
# group: root
|
|
# mode: 00644
|
|
# tags:
|
|
# - network_interfaces
|
|
|
|
- name: "Create systemd interface files"
|
|
template:
|
|
src: templates/etc/systemd/network/link.j2
|
|
dest: "/etc/systemd/network/10-{{ interface.name }}-nic.link"
|
|
owner: root
|
|
group: root
|
|
mode: 00644
|
|
loop: "{{ interfaces }}"
|
|
loop_control:
|
|
loop_var: interface
|
|
vars:
|
|
interfaces: "{{ network.interfaces | default([]) | selectattr('bridge', 'undefined') }}"
|
|
register: network_systemd_interface
|
|
tags:
|
|
- network_systemd_interface
|
|
when: network.skip | default(False) != True
|
|
|
|
- name: "Build split network configuration (interfaces)"
|
|
template:
|
|
src: templates/etc/network/interfaces.d/interface.j2
|
|
dest: "/etc/network/interfaces.d/{{ interface.name }}"
|
|
owner: root
|
|
group: root
|
|
mode: 00644
|
|
loop: "{{ interfaces }}"
|
|
loop_control:
|
|
loop_var: interface
|
|
vars:
|
|
interfaces: "{{ network.interfaces | default([]) }}"
|
|
interface_network: "{{ interface.network | default(False) }}"
|
|
register: network_interfaces_split
|
|
when: network.skip | default(False) != True and network.single_file | default(False) == False
|
|
tags:
|
|
- network_interfaces
|
|
|
|
- name: "Build split network configuration (main)"
|
|
template:
|
|
src: templates/etc/network/interfaces.j2
|
|
dest: "/etc/network/interfaces"
|
|
owner: root
|
|
group: root
|
|
mode: 00644
|
|
vars:
|
|
interfaces: "{{ [] }}"
|
|
register: network_interfaces_split_main
|
|
when: network.skip | default(False) != True and network.single_file | default(False) == False
|
|
tags:
|
|
- network_interfaces
|
|
|
|
- name: "Build combined network configuration"
|
|
template:
|
|
src: templates/etc/network/interfaces.j2
|
|
dest: "/etc/network/interfaces"
|
|
owner: root
|
|
group: root
|
|
mode: 00644
|
|
vars:
|
|
interfaces: "{{ network.interfaces | default([]) }}"
|
|
register: network_interfaces_single
|
|
when: network.skip | default(False) != True and network.single_file | default(False) == True
|
|
tags:
|
|
- network_interfaces
|
|
|
|
- name: "Remove split network configuration files"
|
|
file:
|
|
path: "/etc/network/interfaces.d/{{ interface.name }}"
|
|
state: absent
|
|
loop: "{{ interfaces }}"
|
|
loop_control:
|
|
loop_var: interface
|
|
vars:
|
|
interfaces: "{{ network.interfaces | default([]) }}"
|
|
interface_network: "{{ interface.network | default(False) }}"
|
|
register: network_interfaces_split_removed
|
|
when: network.skip | default(False) != True and network.single_file | default(False) == True
|
|
tags:
|
|
- network_interfaces
|
|
|
|
- name: "Set hostname (/etc/hosts)"
|
|
template:
|
|
src: templates/etc/hosts.j2
|
|
dest: "/etc/hosts"
|
|
owner: root
|
|
group: root
|
|
mode: 00644
|
|
tags:
|
|
- network_hostname
|
|
|
|
- name: "Set hostname (/etc/hostname)"
|
|
template:
|
|
src: templates/etc/hostname.j2
|
|
dest: "/etc/hostname"
|
|
owner: root
|
|
group: root
|
|
mode: 00644
|
|
tags:
|
|
- network_hostname
|
|
|
|
- name: "Restart networking"
|
|
systemd_service:
|
|
name: networking
|
|
daemon_reload: true
|
|
state: restarted
|
|
when: network.skip | default(False) != True and (network_systemd_interface.changed or network_interfaces_split.changed or network_interfaces_split_main.changed or network_interfaces_single.changed or network_interfaces_split_removed.changed)
|
|
tags:
|
|
- network_restart
|
|
|
|
- name: "Configure /etc/resolv.conf"
|
|
template:
|
|
src: templates/etc/resolv.conf.j2
|
|
dest: /etc/resolv.conf
|
|
owner: root
|
|
group: root
|
|
mode: 00644
|
|
vars:
|
|
first_network_name: "{{ (network.interfaces | selectattr('network', 'defined') | first).network }}"
|
|
first_network: "{{ networks | selectattr('name', 'eq', first_network_name) | first }}"
|
|
domain: "{{ network.domain | default(first_network.zone) }}"
|
|
search_domains: "{{ [domain] + (first_network.search_domains | default([])) }}"
|
|
nameservers: "{{ network.nameservers | default(first_network.nameservers) }}"
|
|
tags:
|
|
- network_resolv_conf
|