SSH Key an alle hosts in ansible/hosts kopieren

Wenn man Ansible verwendet, benötigt man den lokalen ssh public key auf allen in der hosts Datei eingetragen Knoten - außer man verwendet das ansible_ssh_pass. Damit man aber nicht für jeden Knoten einzeln ssh-copy-id aufrufen muss, hilft das folgenden Pyhton Script: Die komplette Datei findet ihr unter https://gist.github.com/lightszentip/881593f03a7e3d1b107e3be889547941 Das Script baut auf der Datei von Jiri Tyr hostfile.py auf, welches eine hosts Datei parsed. Der Aufruf sieht wie folgt aus:

python hostfile.py –filename pathtofilehosts –keypath pathtoid_rsa.pub

Falls man es auf eine Gruppe einschränken möchte, kann man auch noch –group Groupname mitgeben (dieser ist aber optional). Als Beispiel:

python hostfile.py –filename /etc/ansible/hosts –keypath ~/.ssh/id_rsa.pub –group database

Wie ihr den ssh key generiert, seht ihr unter adding-your-ssh-key-to-the-ssh-agent und den public key vom private key gibt es mit

ssh-keygen -y -f ~/.ssh/id-database_rsa > ~/.ssh/id-database_rsa.pub

Das ganze könnt ihr dann mit

ansible all -m ping

testen.