diff --git a/tasks/main.yml b/tasks/main.yml index 603e03f..5cf0707 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -77,30 +77,13 @@ # ------------------------- # 4. Create systemd service for persistence # ------------------------- -- name: Create systemd service to persist WoL - ansible.builtin.copy: +- name: Create systemd service from template + ansible.builtin.template: + src: wol-interfaces.service.j2 dest: /etc/systemd/system/wol-interfaces.service - content: | - [Unit] - Description=Set Wake-on-LAN on network interfaces - After=network.target - Wants=network.target - - [Service] - Type=oneshot - ExecStart=/bin/bash -c ' - {% for intf, enabled, supported in en_interfaces | zip(wol_enabled.results, wol_supported.results) %} - {% if wol_mode in supported.stdout %} - {% if wol_mode not in enabled.stdout %} - /sbin/ethtool -s {{ intf }} wol {{ wol_mode }}; - {% endif %} - {% endif %} - {% endfor %} - ' - RemainAfterExit=yes - - [Install] - WantedBy=multi-user.target + owner: root + group: root + mode: '0644' notify: - Reload systemd diff --git a/templates/wol-interfaces.service.j2 b/templates/wol-interfaces.service.j2 new file mode 100644 index 0000000..2523e23 --- /dev/null +++ b/templates/wol-interfaces.service.j2 @@ -0,0 +1,13 @@ +[Unit] +Description=Set Wake-on-LAN on network interfaces +After=network.target +Wants=network.target + +[Service] +Type=oneshot +ExecStart=/bin/bash -c '{% for intf, enabled, supported in en_interfaces | zip(wol_enabled.results, wol_supported.results) %} +{% if wol_mode in supported.stdout and wol_mode not in enabled.stdout %}/sbin/ethtool -s {{ intf }} wol {{ wol_mode }}; {% endif %}{% endfor %}' +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target