Das Synchronisierungsmodul von Ansible (v1.6.5) fordert zur Eingabe der Passphrase (Geben Sie die Passphrase für den Schlüssel ein) obwohl ich es bereits am Anfang eingegeben habe beim Ausführen des Playbooks.
Irgendeine Idee warum?
Ich führe mein Playbook mit den folgenden Optionen aus:
%Vor%Hier ist meine Synchronisierungsaufgabe:
%Vor%UPDATE mit ssh-agent
Nach dem Rat von Lekensteyn versuchte ich es mit ssh-agent. Ich habe keine Eingabeaufforderung mehr, aber die Aufgabe schlägt fehl. Was vermisse ich?
%Vor%Der Fehler:
%Vor% Der synchronize
-Befehl (bis mindestens Ansible 1.6.6) scheint den normalen von Ansible geöffneten SSH-Kontrollsockel zu ignorieren. Ihre Aufgabe könnte folgendermaßen erweitert werden:
Um diese Details zu erhalten, führen Sie Ihr Playbook mit der Option -v
aus. Um dies zu umgehen, können Sie ssh-agent
starten und Ihren SSH-Schlüssel mit ssh-add
zwischenspeichern. Weitere Informationen finden Sie in den Handbuchseiten.
Zusätzliche Einschränkungen mit dem Modul synchronize
:
sudo: yes
wird ansible mit --rsh 'sudo ssh'
ausgeführt, was zu einem Abbruch führen wird, wenn die Remote-Sudo-Konfiguration ein Kennwort und / oder TTY erfordert. Lösung: Setzen Sie sudo: no
in Ihrer Aufgabendefinition. ansible_ssh_user
), nicht der sudo-Benutzer. Ich habe keine Möglichkeit gefunden, diesen Benutzer außer Kraft zu setzen (neben einer nicht getesteten Methode, die den Benutzer mit -o User
Option über eine der anderen Optionen ( dest_port="22 -o User=your_user"
?) In Kombination mit set_remote_user=yes
) überschreibt. Dies stammt aus meiner Aufgaben-Datei:
%Vor%Ich denke, standardmäßig synchronisiert die explizite Einstellung eines Benutzernamens für den rsync-Befehl - Sie können dies verhindern und rsync erlauben, von Ihrer ssh-Konfigurationsdatei zu arbeiten.
set_remote_user
Setzen Sie Benutzer @ für die Remote-Pfade. Wenn Sie eine benutzerdefinierte SSH-Konfiguration haben, um den Remotebenutzer für einen Host zu definieren, der nicht mit dem Inventarbenutzer übereinstimmt, sollten Sie diesen Parameter auf "Nein" setzen.
Ich habe einen Remote-Benutzer in meiner SSH-Konfiguration konfiguriert und musste set_remote_user=no
hinzufügen, um mit der Arbeit zu synchronisieren, andernfalls versuchte er den falschen Benutzernamen zu verwenden und weder ssh key noch Passwort funktionieren.
Ich habe versucht, das Kopiermodul zu verwenden, aber es dauert viel zu viel Zeit. Damit das Synchronisierungsmodul funktioniert, werde ich Folgendes tun. Es ist nicht perfekt, aber zumindest funktioniert es.
Ändern Sie den Besitz und die Berechtigungen des Remote-Zielordners auf den Benutzer, den ich verwende
benutze die Synchronisation ohne sudo
setze den Besitz und die Berechtigungen der Zielfernbedienung auf das zurück, was ich vorher wollte
Tags und Links ansible ansible-playbook