Ansqle synchronisiert die Passphrase, selbst wenn sie bereits am Anfang eingegeben wurde

8

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%     
Michael 15.07.2014, 16:22
quelle

5 Antworten

11

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:

%Vor%

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 :

  • Bei Ausführung mit 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.
  • Der Benutzer, der sich am Remote-Computer anmeldet, ist Ihr SSH-Benutzer ( 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%     
Lekensteyn 17.07.2014, 21:43
quelle
5

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.

    
Sean Burlington 20.03.2015 14:22
quelle
2

Das Deaktivieren von tty_tickets in /etc/sudoers auf dem Remote-Computer behebt dieses Problem (auf Kosten einer leicht reduzierten Sicherheit). Z. B.

%Vor%     
nwk 25.09.2015 16:12
quelle
2

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.

  1. Ändern Sie den Besitz und die Berechtigungen des Remote-Zielordners auf den Benutzer, den ich verwende

  2. benutze die Synchronisation ohne sudo

  3. setze den Besitz und die Berechtigungen der Zielfernbedienung auf das zurück, was ich vorher wollte

Michael 21.07.2014 16:59
quelle
1

Der beste Weg, dies anzugehen - ist, Ihren Schlüssel zu ssh authorized_keys für root-Benutzer auf dem Remote-Server zu installieren.

    
podarok 24.03.2015 15:06
quelle

Tags und Links