Sto configurando alcune macchine con Ansible e devo abilitare connessioni meno password tra di loro. Ho un master di database e diversi slave. Per la replica iniziale, gli slave devono immettere ssh nel master e ottenere una copia del database. Non sono sicuro di quale sia il modo migliore per aggiungere dinamicamente tutte le chiavi pubbliche degli slave al authorized_keys
file master .
Ho già pensato di fornire le chiavi pubbliche degli slave come variabili e di aggiungerle tramite il authorized_key
modulo. Ma poi devo mantenere l'elenco delle chiavi. Sto cercando un approccio in cui aggiungo solo un altro host il gruppo degli schiavi e il resto funzionerà automaticamente.
Qualche idea?
Aggiornare:
Finora ho ottenuto il seguente pseudo codice:
# 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
Il ciclo con il {% %}
solo funziona in file modello e non direttamente nei playbook. Un modo per farlo nel mio playbook?