Ansible-Task - klonen privaten Git ohne SSH-Weiterleitung

8

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

    
Laurynas Mališauskas 07.07.2017, 12:25
quelle

2 Antworten

2

Hier sind einige Schritte, damit es funktioniert (getestet mit Ansible 2.3.1 und Python 2.7.10 auf MacOS, Ubuntu LTS):

  1. Erstellen Sie ein neues SSH-Schlüsselpaar ohne Passphrase ssh-keygen -f my_ssh_key -N '' .

  2. Fügen Sie my_ssh_key.pub zu Ihrem Repository-Server-Benutzerprofil hinzu

  3. 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.

    
Konstantin Suvorov 12.07.2017, 12:06
quelle
0

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

Angeben privater SSH-Schlüssel, der beim Ausführen des Shell-Befehls mit oder ohne Ruby verwendet werden soll?

    
eftshift0 12.07.2017 05:32
quelle

Tags und Links