Files
ansible/playbooks/playbook_ssh_keys.yml
2026-07-12 08:44:40 +02:00

33 lines
1.2 KiB
YAML

---
# Zarządzanie kluczami publicznymi SSH konta logowania (root lub mgmt, w zależności
# od grupy PatchMon hosta) na całej flocie jednym uruchomieniem.
#
# Lista kluczy: admin_ssh_keys w group_vars/all.yml (uzupełnij przed użyciem).
#
# Domyślnie tylko DODAJE brakujące klucze (bezpieczne). Aby wymusić, żeby
# authorized_keys zawierał WYŁĄCZNIE klucze z admin_ssh_keys (usuwając inne),
# uruchom z: -e "ssh_keys_exclusive=true" — rób to świadomie, może odciąć dostęp.
- name: Zarządzanie kluczami SSH konta logowania
hosts: all
gather_facts: false
vars:
ssh_keys_exclusive: false
tasks:
- name: Sprawdź, czy admin_ssh_keys nie jest puste
ansible.builtin.assert:
that:
- admin_ssh_keys | length > 0
fail_msg: >-
admin_ssh_keys jest puste — uzupełnij listę kluczy w group_vars/all.yml
przed uruchomieniem tego playbooka.
run_once: true
delegate_to: localhost
- name: Zapewnij obecność kluczy publicznych w authorized_keys
ansible.posix.authorized_key:
user: "{{ ansible_user }}"
key: "{{ admin_ssh_keys | join('\n') }}"
state: present
exclusive: "{{ ssh_keys_exclusive }}"