Trying a whole buncha stuff
This commit is contained in:
49
roles/networkd/tasks/main.yml
Normal file
49
roles/networkd/tasks/main.yml
Normal file
@@ -0,0 +1,49 @@
|
||||
---
|
||||
- import_tasks: packages.yml
|
||||
|
||||
- name: Delete networkd config directory
|
||||
become: true
|
||||
file:
|
||||
path: /etc/systemd/network
|
||||
state: absent
|
||||
|
||||
- name: Create the networkd config directory
|
||||
become: true
|
||||
file:
|
||||
path: /etc/systemd/network
|
||||
state: directory
|
||||
|
||||
- name: Make network files
|
||||
when: networking is defined
|
||||
become: true
|
||||
template:
|
||||
src: network.j2
|
||||
dest: "/etc/systemd/network/{{ item.key }}.network"
|
||||
loop: "{{ networking | dict2items }}"
|
||||
|
||||
- name: Make netdev files
|
||||
when: networking is defined
|
||||
become: true
|
||||
template:
|
||||
src: netdev.j2
|
||||
dest: "/etc/systemd/network/{{ item.key }}.netdev"
|
||||
loop: "{{ networking | dict2items }}"
|
||||
|
||||
- import_tasks: services.yml
|
||||
|
||||
- name: Symlink so systemd-resolved uses /etc/resolv.conf
|
||||
become: true
|
||||
file:
|
||||
dest: /etc/resolv.conf
|
||||
src: /run/systemd/resolve/resolv.conf
|
||||
state: link
|
||||
force: true
|
||||
setype: net_conf_t
|
||||
|
||||
- name: Symlink so /etc/resolv.conf uses systemd
|
||||
become: true
|
||||
file:
|
||||
dest: /etc/systemd/system/multi-user.target.wants/systemd-resolved.service
|
||||
src: /usr/lib/systemd/system/systemd-resolved.service
|
||||
state: link
|
||||
force: true
|
8
roles/networkd/tasks/packages.yml
Normal file
8
roles/networkd/tasks/packages.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: Install systemd-networkd
|
||||
become: true
|
||||
dnf:
|
||||
state: latest
|
||||
name:
|
||||
- systemd-resolved
|
||||
- systemd-networkd
|
41
roles/networkd/tasks/services.yml
Normal file
41
roles/networkd/tasks/services.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
- name: Disable NetworkManager
|
||||
become: true
|
||||
systemd:
|
||||
name: "{{ item }}"
|
||||
enabled: false
|
||||
loop:
|
||||
- network
|
||||
- NetworkManager
|
||||
- NetworkManager-wait-online
|
||||
|
||||
- name: Enable systemd-networkd
|
||||
become: true
|
||||
systemd:
|
||||
name: "{{ item }}"
|
||||
enabled: true
|
||||
loop:
|
||||
- systemd-networkd
|
||||
- systemd-resolved
|
||||
- systemd-networkd-wait-online
|
||||
|
||||
- name: Stop NetworkManager
|
||||
when: restart_services | default(false) == true
|
||||
become: true
|
||||
systemd:
|
||||
name: "{{ item }}"
|
||||
state: stopped
|
||||
loop:
|
||||
- network
|
||||
- NetworkManager
|
||||
- NetworkManager-wait-online
|
||||
|
||||
- name: Start systemd-networkd
|
||||
become: true
|
||||
systemd:
|
||||
name: "{{ item }}"
|
||||
state: started
|
||||
loop:
|
||||
- systemd-networkd
|
||||
- systemd-resolved
|
||||
- systemd-networkd-wait-online
|
11
roles/networkd/templates/netdev.j2
Normal file
11
roles/networkd/templates/netdev.j2
Normal file
@@ -0,0 +1,11 @@
|
||||
# ANSIBLE MANAGED FILE - DO NOT EDIT
|
||||
[NetDev]
|
||||
Name={{ item.key }}
|
||||
Kind=vlan
|
||||
{% if item.value['kind'] == 'vlan' %}
|
||||
|
||||
[VLAN]
|
||||
Id={{ item.value['vlan'] }}
|
||||
{% endif %}
|
||||
|
||||
# EOF
|
27
roles/networkd/templates/network.j2
Normal file
27
roles/networkd/templates/network.j2
Normal file
@@ -0,0 +1,27 @@
|
||||
# ANSIBLE MANAGED FILE - DO NOT EDIT
|
||||
[Match]
|
||||
Name={{ item.key }}
|
||||
|
||||
[Network]
|
||||
DHCP={{ 'Yes' if item.value['dhcp'] | default(false) == true else 'No' }}
|
||||
IPv6AcceptRA={{ 'Yes' if item.value['dhcp6'] | default(false) == true else 'No' }}
|
||||
{% if item.value['addresses'] is defined %}
|
||||
{% for ip_addr in item.value['addresses'] %}
|
||||
Address={{ ip_addr }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.value['dns'] is defined %}
|
||||
{% for dns_server in item.value['dns'] %}
|
||||
DNS={{ dns_server }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.value['gateway'] is defined %}
|
||||
Gateway={{ item.value['gateway'] }}
|
||||
{% endif %}
|
||||
{% if item.value['vlans'] is defined %}
|
||||
{% for vlan_tag in item.value['vlans'] %}
|
||||
VLAN={{ item.key }}.{{ vlan_tag }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
# EOF
|
Reference in New Issue
Block a user