Skip to content
Snippets Groups Projects
Unverified Commit c575a256 authored by Imran Iqbal's avatar Imran Iqbal Committed by GitHub
Browse files

Merge pull request #68 from toanju/networkd-reload

networkd reload
parents d77297e8 34dd64b6
Branches
No related tags found
No related merge requests found
...@@ -121,12 +121,17 @@ systemd: ...@@ -121,12 +121,17 @@ systemd:
## networkd ## networkd
networkd: networkd:
fileattr:
br0.network:
user: systemd-network
group: systemd-network
mode: "0600"
profiles: profiles:
network: network:
# eth0.network # br0.network
eth0: br0:
- Match: - Match:
- Name: eth0 - Name: br0
- Network: - Network:
- DHCP: "yes" - DHCP: "yes"
......
...@@ -19,7 +19,10 @@ systemd: ...@@ -19,7 +19,10 @@ systemd:
PollIntervalMaxSec: 2048 PollIntervalMaxSec: 2048
networkd: networkd:
# networkctl reload is available since systemd 244
networkctl_reload: false
pkg: {} pkg: {}
fileattr: {}
path: /etc/systemd/network path: /etc/systemd/network
service: systemd-networkd service: systemd-networkd
wait_online: true wait_online: true
......
...@@ -5,26 +5,42 @@ ...@@ -5,26 +5,42 @@
{%- set networkd = systemd.get('networkd', {}) %} {%- set networkd = systemd.get('networkd', {}) %}
{%- set profiles = networkd.get('profiles', {}) %} {%- set profiles = networkd.get('profiles', {}) %}
{%- if networkd.networkctl_reload %}
include: include:
- systemd.reload - systemd.networkd.reload
{%- endif %}
{% if profiles is mapping %} {%- if profiles is mapping %}
{% for networkdprofile, types in profiles.items() %}
{% for profile, profileconfig in types.items() %}
/etc/systemd/network/{{ profile }}.{{ networkdprofile }}: /etc/systemd/network:
file.managed: file.directory:
- template: jinja
- source: salt://systemd/networkd/templates/profile.jinja
- user: root - user: root
- group: root - group: root
- mode: '0644'
- makedirs: true - makedirs: true
- dir_mode: 755 - dir_mode: 755
{%- for networkdprofile, types in profiles.items() %}
{%- for profile, profileconfig in types.items() %}
{%- set filename = profile ~ "." ~ networkdprofile %}
{%- set user = networkd.fileattr.get(filename, {}).user | default("root") %}
{%- set group = networkd.fileattr.get(filename, {}).group | default("root") %}
{%- set mode = networkd.fileattr.get(filename, {}).mode | default("0644") %}
/etc/systemd/network/{{ filename }}:
file.managed:
- template: jinja
- source: salt://systemd/networkd/templates/profile.jinja
- user: {{ user }}
- group: {{ group }}
- mode: {{ mode }}
- context: - context:
config: {{ profileconfig|json }} config: {{ profileconfig|json }}
- require:
- file: /etc/systemd/network
{%- if networkd.networkctl_reload %}
- watch_in: - watch_in:
- cmd: reload_systemd_configuration - cmd: systemd-networkd-reload-cmd-wait
{% endfor %} {%- endif %}
{% endfor %} {%- endfor %}
{% endif %} {%- endfor %}
{%- endif %}
include:
- systemd.networkd
systemd-networkd-reload-cmd-wait:
cmd.wait:
- name: networkctl reload
- runas: root
- require:
- service: networkd
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
{%- endfor -%} {%- endfor -%}
{%- endif -%} {%- endif -%}
{%- endfor %} {%- endfor %}
{% endfor %} {%- endfor %}
{%- endmacro -%} {%- endmacro -%}
# This file is managed by Salt via {{ source }} # This file is managed by Salt via {{ source }}
......
...@@ -14,6 +14,7 @@ Fedora: ...@@ -14,6 +14,7 @@ Fedora:
pkgs_extra: pkgs_extra:
- python3-systemd - python3-systemd
networkd: networkd:
networkctl_reload: true
pkg: {} pkg: {}
resolved: resolved:
pkg: {} pkg: {}
...@@ -14,11 +14,11 @@ control 'Systemd Networkd' do ...@@ -14,11 +14,11 @@ control 'Systemd Networkd' do
it { should_not exist } it { should_not exist }
end end
describe file('/etc/systemd/network/eth0.network') do describe file('/etc/systemd/network/br0.network') do
its('type') { should eq :file } its('type') { should eq :file }
its('mode') { should cmp '0644' } its('mode') { should cmp '0600' }
its('owner') { should eq 'root' } its('owner') { should eq 'systemd-network' }
its('group') { should eq 'root' } its('group') { should eq 'systemd-network' }
end end
describe file('/etc/systemd/network/br0.netdev') do describe file('/etc/systemd/network/br0.netdev') do
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment