ja napisałem ansibl skrypt do usuwania kluczy SSH ze zdalnych serwerów:Dodaj wiele kluczy SSH za pomocą ansibl
---
- name: "Add keys to the authorized_keys of the user ubuntu"
user: ubuntu
hosts: www
tasks:
- name: "Remove key #1"
authorized_key: user=ubuntu key="{{ item }}" state=absent
with_file:
- id_rsa_number_one.pub
- name: "Remove key #2"
authorized_key: user=ubuntu key="{{ item }}" state=absent
with_file:
- id_rsa_number_two.pub
...
Dodawanie każdy plik jako inny zadaniem jest niedorzeczny, więc próbowałem przy użyciu with_fileglob
:
- name: "Remove all keys at once"
authorized_key: user=ubuntu key="{{ item }}" state=absent
with_fileglob:
- /Users/adamatan/ansible/id_rsa*.pub
Ale to nie z liniami takimi jak ten:
failed: [www.example.com] => (item =/Users/adamatan/ansible/id_rsa_one.pub) => {"failed": true, "item": "/Users/adamatan/ansible/id_rsa_one.pub"} msg: nieprawidłowy klucz określony:/użytkownicy/adamatan/ansibl/id_rsa_one.pub
Ten sam plik klucza został pomyślnie usunięty przy użyciu unikalnego zadanie, ale nie kiedy jest częścią fileglob
.
Jak mogę wsadowo dodawać lub usuwać klucze SSH używając ansibla?
Ta modyfikacja doskonale nadaje się do masowego aktualizowania/usuwania wpisów. Oto mój problem - mam klucze na serwerach od kogoś, kogo już nie ma. Jak mogę wyczyścić i zastąpić plik authorized_keys moją główną listą aktywnych kluczy? Po uruchomieniu tego skryptu usuwa (jeśli nieobecny) moje aktywne klucze lub dodaje (jeśli są obecne), ale nigdy nie usuwa kluczy, których nie ma w moich plikach * .pub. – Valien
@Valien dla wielu kluczy wyłącznych, patrz przykład w tej [prośbie o pobranie] (https://github.com/ansible/ansible-modules-core/pull/4167/files). – sudoman
Można również utworzyć '~/.ssh /' i skopiować statyczne pliki 'authorized_keys' dla wszystkich użytkowników w niektórych grupach hostów. W takim przypadku będziesz mieć pełną kontrolę nad zawartością pliku. – sudoman