servers/roles/windows/tasks/main.yml
Timotej Lazar 91de26af57 Add windows role
Set up network interfaces and SSH for Windows hosts.

We can’t gather facts before we know which remote shell to use, so
first run a win_ping to determine if a given host is running Windows.
2025-05-09 17:26:07 +02:00

35 lines
900 B
YAML

- include_tasks: interface.yml
loop: "{{ interfaces }}"
loop_control:
label: "{{ interface.name }}"
loop_var: interface
- name: Disable SSH password authentication
win_lineinfile:
path: c:\ProgramData\ssh\sshd_config
regexp: '^#?{{ item.key }}'
line: "{{ item.key }} {{ item.value }}"
loop:
- key: "PasswordAuthentication"
value: "no"
- key: "PermitRootLogin"
value: "prohibit-password"
notify: restart sshd
- name: Set default shell to powershell
win_regedit:
path: HKLM:\SOFTWARE\OpenSSH
name: DefaultShell
data: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
notify: restart sshd
- name: Set authorized SSH keys
win_copy:
dest: C:\ProgramData\ssh\administrators_authorized_keys
content: "{{ ssh_keys | join('\n') }}"
- name: Enable ssh
win_service:
name: sshd
start_mode: auto
state: started