diff options
Diffstat (limited to 'roles')
-rw-r--r-- | roles/network/wakeonlan/defaults/main.yml | 13 | ||||
-rw-r--r-- | roles/network/wakeonlan/handlers/main.yml | 5 | ||||
-rw-r--r-- | roles/network/wakeonlan/tasks/main.yml | 13 | ||||
-rw-r--r-- | roles/network/wakeonlan/templates/wakeonlan.service.j2 | 25 |
4 files changed, 56 insertions, 0 deletions
diff --git a/roles/network/wakeonlan/defaults/main.yml b/roles/network/wakeonlan/defaults/main.yml new file mode 100644 index 00000000..1a03f030 --- /dev/null +++ b/roles/network/wakeonlan/defaults/main.yml @@ -0,0 +1,13 @@ +--- +wakeonlan_interfaces: + - "{{ network.primary.name }}" + +wakeonlan_options: +# - p ## Wake on PHY activity +# - u ## Wake on unicast messages +# - m ## Wake on multicast messages +# - b ## Wake on broadcast messages +# - a ## Wake on ARP + - g ## Wake on MagicPacket™ +# - s ## Enable SecureOn™ password for MagicPacket™ +# - f ## Wake on filter(s) diff --git a/roles/network/wakeonlan/handlers/main.yml b/roles/network/wakeonlan/handlers/main.yml new file mode 100644 index 00000000..77b049a5 --- /dev/null +++ b/roles/network/wakeonlan/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: restart wakeonlan + systemd: + name: wakeonlan.service + state: restarted diff --git a/roles/network/wakeonlan/tasks/main.yml b/roles/network/wakeonlan/tasks/main.yml new file mode 100644 index 00000000..5270ba4e --- /dev/null +++ b/roles/network/wakeonlan/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: install systemd service unit + template: + src: wakeonlan.service.j2 + dest: /etc/systemd/system/wakeonlan.service + notify: restart wakeonlan + +- name: make sure wakeonlan service unit is enabled and started + systemd: + name: wakeonlan.service + daemon_reload: yes + state: started + enabled: yes diff --git a/roles/network/wakeonlan/templates/wakeonlan.service.j2 b/roles/network/wakeonlan/templates/wakeonlan.service.j2 new file mode 100644 index 00000000..c163e8a7 --- /dev/null +++ b/roles/network/wakeonlan/templates/wakeonlan.service.j2 @@ -0,0 +1,25 @@ +[Unit] +Description=Configure Wake-on-LAN + +[Service] +Type=oneshot +{% for interface in wakeonlan_interfaces %} +ExecStart=/usr/sbin/ethtool -s {{ interface }} wol {{ wakeonlan_options | join }} +{% endfor %} +{% for interface in wakeonlan_interfaces %} +ExecStop=/usr/sbin/ethtool -s {{ interface }} wol d +{% endfor %} +RemainAfterExit=yes +NoNewPrivileges=yes +PrivateTmp=yes +PrivateDevices=yes +ProtectSystem=strict +ProtectHome=yes +ProtectKernelTunables=yes +ProtectControlGroups=yes +RestrictRealtime=yes +RestrictAddressFamilies=AF_UNIX AF_NETLINK +SystemCallArchitectures=native + +[Install] +WantedBy=basic.target |