Ich richte einige Computer mit Ansible ein und muss kennwortlose Verbindungen zwischen ihnen aktivieren. Ich habe einen Datenbankmaster und mehrere Slaves. Für die erste Replikation müssen die Slaves in den Master ssh und eine Kopie der Datenbank erhalten. Ich bin mir nicht sicher, wie ich am besten alle öffentlichen Slaves-Schlüssel dynamisch zur Master- authorized_keys
Datei hinzufügen kann.
Ich habe bereits darüber nachgedacht, die öffentlichen Slaves-Schlüssel als Variablen bereitzustellen und sie dann über das authorized_key
Modul hinzuzufügen . Aber dann muss ich die Liste der Schlüssel pflegen. Ich suche nach einem Ansatz, bei dem ich einfach einen weiteren Host zur Slaves-Gruppe hinzufüge und der Rest automatisch funktioniert.
Irgendwelche Ideen?
Aktualisieren:
Bisher habe ich folgenden Pseudocode erhalten:
# collect public keys from slave machines
- name: collect slave keys
{% for host in groups['databases_slave'] %}
shell: /bin/cat /var/lib/postgresql/.ssh/id_rsa.pub
register: slave_keys #how to add to an array here?
{% endfor %}
# Tasks for PostgreSQL master
- name: add slave public key
sudo: yes
authorized_key: user=postgres state=present key={{ item }}
with_items: slave_keys
Die Schleife {% %}
funktioniert nur in Vorlagendateien und nicht direkt in Playbooks. Wie kann ich das in meinem Spielbuch machen?
quelle