iac_stack/ansible/roles/server_install_ssh/tasks/main.yml

63 lines
1.6 KiB
YAML
Raw Normal View History

2025-06-10 21:05:04 +02:00
---
- name: Paketlisten aktualisieren
2025-06-10 22:07:03 +02:00
ansible.builtin.apt:
update_cache: true
2025-06-10 21:05:04 +02:00
cache_valid_time: 3600
- name: Detect if system is Proxmox (by checking /etc/pve)
stat:
path: /etc/pve
register: pve_check
2025-06-10 21:05:04 +02:00
- name: OpenSSH Server installieren
2025-06-10 22:07:03 +02:00
ansible.builtin.apt:
2025-06-10 21:05:04 +02:00
name: openssh-server
state: present
- name: Benutzer anlegen (falls nicht vorhanden)
2025-06-10 22:07:03 +02:00
ansible.builtin.user:
2025-06-10 21:05:04 +02:00
name: "{{ ssh_user }}"
shell: /bin/bash
2025-06-10 22:07:03 +02:00
create_home: true
2025-06-10 21:05:04 +02:00
- name: SSH-Verzeichnis anlegen
2025-06-10 22:07:03 +02:00
ansible.builtin.file:
2025-06-10 21:05:04 +02:00
path: "/home/{{ ssh_user }}/.ssh"
state: directory
owner: "{{ ssh_user }}"
group: "{{ ssh_user }}"
mode: '0700'
- name: Trusted SSH keys von GitHub laden
ansible.builtin.get_url:
url: "{{ ssh_auth_keys_url }}"
dest: "/home/{{ ssh_user }}/.ssh/trusted_ssh_keys"
owner: "{{ ssh_user }}"
group: "{{ ssh_user }}"
mode: '0644'
- name: Alle geladenen Keys in authorized_keys eintragen
ansible.builtin.command: >
bash -c "cat /home/{{ ssh_user }}/.ssh/trusted_ssh_keys >> /home/{{ ssh_user }}/.ssh/authorized_keys"
args:
creates: "/home/{{ ssh_user }}/.ssh/authorized_keys"
become: true
- name: Permissions für authorized_keys setzen
ansible.builtin.file:
path: "/home/{{ ssh_user }}/.ssh/authorized_keys"
2025-06-10 21:05:04 +02:00
owner: "{{ ssh_user }}"
group: "{{ ssh_user }}"
mode: '0600'
- name: SSH-Konfiguration per Template übertragen
2025-06-10 22:07:03 +02:00
ansible.builtin.template:
2025-06-10 21:05:04 +02:00
src: sshd_config.j2
dest: /etc/ssh/sshd_config
owner: root
group: root
mode: '0644'
2025-06-10 22:07:03 +02:00
notify: Restart SSH
vars:
is_proxmox: "{{ pve_check.stat.exists }}"