Ich habe einen ansible Skript geschrieben, um SSH-Schlüssel von Remote-Servern zu entfernen:Fügen Sie mehr SSH-Schlüssel mit ansible
---
- 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
...
Hinzufügen jede Datei als eine andere Aufgabe grotesk ist, so habe ich versucht, mit with_fileglob
:
- name: "Remove all keys at once"
authorized_key: user=ubuntu key="{{ item }}" state=absent
with_fileglob:
- /Users/adamatan/ansible/id_rsa*.pub
Aber dies nicht gelingt mit Zeilen wie diese:
fehlgeschlagen: [www.example.com] => (Element =/Benutzer/adamatan/ansible/id_rsa_one.pub) => {"fehlgeschlagen": true, "Element": "/Users/adamatan/ansible/id_rsa_one.pub"} msg: ungültiger Schlüssel angegeben:/Benutzer/adamatan/ansible/id_rsa_one.pub
Die gleiche Schlüsseldatei erfolgreich entfernt wird eine eindeutige Aufgabe verwenden, aber nicht, wenn es sich um ein Teil eines fileglob
ist.
Wie kann ich SSH-Schlüssel mithilfe von Ansible stapelweise hinzufügen oder entfernen?
Diese Änderung funktioniert also gut für Bulk-Aktualisierung/Entfernen von Einträgen. Hier ist mein Problem - ich habe Schlüssel auf Servern von jemandem, der nicht mehr hier ist. Wie kann ich die Datei authorized_keys mit meiner Hauptliste aktiver Schlüssel löschen und überschreiben? Wenn ich dieses Skript ausführe, entfernt es (wenn es nicht vorhanden ist) meine aktiven Schlüssel oder fügt hinzu (wenn vorhanden), aber es entfernt niemals die Schlüssel, die nicht in meinen * .pub-Dateien enthalten sind. – Valien
@Valien für mehrere exklusive Schlüssel, siehe das Beispiel in dieser [Pull-Anfrage] (https://github.com/ansible/ansible-modules-core/pull/4167/files). – sudoman
Sie können auch '~/.ssh /' erstellen und statische Dateien 'authorized_keys' für alle Benutzer in einigen Hostgruppen kopieren. In diesem Fall hätten Sie volle Kontrolle über den Dateiinhalt. – sudoman