Ich versuche ein Ansible-Playbook zu erstellen, das von unseren Dev-Team-Computern und von CI / CD-Servern ausgeführt wird.
Eine der Aufgaben im Playbook besteht darin, den Quellcode unseres Projekts aus einem privaten Git-Repository zu holen. Da das Playbook von CI / CD-Servern ausgeführt werden muss, können wir keine SSH-Weiterleitung verwenden.
Was ich herausgefunden habe, ist, den notwendigen privaten SSH-Schlüssel auf den Remote-Host-Rechner zu kopieren und dann mit dem Schlüssel den Code aus dem privaten Git-Repository zu klonen.
Wenn Sie dies jedoch versuchen, hängt die Klon-Task. Wenn Sie versuchen, den Befehl manuell zu starten, werden Sie nach einer Passphrase für den privaten SSH-Schlüssel gefragt. Der SSH-Schlüssel verwendet keine Passphrase (leer).
Kann jemand seine Lösung dieses (wahrscheinlich sehr häufigen) Problems teilen?
Falls jemand etwas braucht, ist dies mein aktuelles Spielbuch:
%Vor% Ich verwende ansible 2.3.1.0, python version = 2.7.12
Hier sind einige Schritte, damit es funktioniert (getestet mit Ansible 2.3.1 und Python 2.7.10 auf MacOS, Ubuntu LTS):
Erstellen Sie ein neues SSH-Schlüsselpaar ohne Passphrase ssh-keygen -f my_ssh_key -N ''
.
Fügen Sie my_ssh_key.pub
zu Ihrem Repository-Server-Benutzerprofil hinzu
Testen Sie mit dem folgenden Playbook:
_
%Vor%WICHTIGE SICHERHEITSHINWEISE
Wenn Sie dieses Beispiel in der realen Welt verwenden möchten, speichern Sie Ihren privaten Schlüssel nicht im Klartext - verwenden Sie Ansible Vault .
Sie sollten auch NICHT root als Ihren möglichen Benutzer verwenden. Es wäre sicherer, neue Benutzer ohne sudo-Berechtigungen zu erstellen.
Ich schätze, das Problem ist, dass git für die automatisierte Aufgabe keinen ssh-Schlüssel verwendet. Ich habe gelesen (indem ich mich ein paar Minuten umgesehen habe), dass man mit git 2.10 ssh Sachen liefern kann, wenn man git aufruft .... also denke ich, du könntest etwas wie:
ausprobieren %Vor%Oder welcher Befehl auch immer Sie verwenden möchten. Sie könnten es auch in der Konfiguration reparieren:
%Vor%Wie auch immer, hoffe das hilft ein bisschen
Tags und Links git ansible ansible-2.x