diff --git a/ansible/host_vars/gpu-01.lab.alexpires.me.yml b/ansible/host_vars/gpu-01.lab.alexpires.me.yml index 4b6f978..3b0b6bb 100644 --- a/ansible/host_vars/gpu-01.lab.alexpires.me.yml +++ b/ansible/host_vars/gpu-01.lab.alexpires.me.yml @@ -1,6 +1,8 @@ hostname: gpu-01.lab.alexpires.me ansible_user: "{{ lookup('env', 'ANSIBLE_USER') }}" +network_interface: eno1 + # Users login_users: - username: "{{ ansible_user }}" diff --git a/ansible/playbook_wol.yml b/ansible/playbook_wol.yml new file mode 100644 index 0000000..5b736a7 --- /dev/null +++ b/ansible/playbook_wol.yml @@ -0,0 +1,7 @@ +- name: Setup WakeOnLan + hosts: wol + + tasks: + - name: Setup WakeOnLan + ansible.builtin.include_tasks: + file: tasks/wol.yml diff --git a/ansible/tasks/wol.yml b/ansible/tasks/wol.yml new file mode 100644 index 0000000..e85a50a --- /dev/null +++ b/ansible/tasks/wol.yml @@ -0,0 +1,41 @@ +- name: Install ethtool + become: true + ansible.builtin.package: + name: ethtool + state: present + +- name: Enable WOL on the network interface + become: true + ansible.builtin.command: ethtool -s {{ network_interface }} wol g + changed_when: false + +- name: Create systemd-networkd WOL config + become: true + ansible.builtin.copy: + dest: "/etc/systemd/network/10-wol.network" + content: | + [Match] + Name={{ network_interface }} + + [Link] + WakeOnLan=magic + owner: root + group: root + mode: "0644" + +- name: Enable and restart systemd-networkd + become: true + ansible.builtin.systemd: + name: systemd-networkd + enabled: true + state: restarted + +- name: Confirm WOL setting applied + become: true + ansible.builtin.command: ethtool {{ network_interface }} + register: wol_status + changed_when: false + +- name: Show WOL setting + ansible.builtin.debug: + var: wol_status.stdout_lines diff --git a/inventory/hosts b/inventory/hosts index 5e117de..c76baf6 100644 --- a/inventory/hosts +++ b/inventory/hosts @@ -89,3 +89,6 @@ vh-01.lab.alexpires.me [nvidia] gpu-01.lab.alexpires.me + +[wol] +gpu-01.lab.alexpires.me \ No newline at end of file