33 lines
1.2 KiB
YAML
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 }}"
|