Wie kann Circle CI SSH auf meinen Server zugreifen?

8

Ich habe einige Fragen und Probleme mit meiner CI- und CD-Lösung.

Schienen: 4.2

Capistrano: 3.4.0

Die Anwendung wird auf einem privaten Server gehostet.

Momentan arbeite ich im Workflow mit der Bereitstellung von Entwicklung, Bereitstellung und Produktion über das Terminal. Ich habe auch Circle CI angeschlossen, der gut in diesen Zweigen funktioniert.

Ich kann nicht herausfinden, wie Circle CI eingerichtet wird, um Capistrano für die Bereitstellung zu verwenden. Alles wird mit dem Server-Benutzer in der Capistrano-Konfiguration konfiguriert.

Wie gebe ich Circle CI SSH Zugang zu meinem deploy user? Weil ich jetzt ein Passwort für den Benutzer angeben muss.

    
davidwessman 08.09.2015, 20:58
quelle

2 Antworten

8

Verwenden Sie SSH-Schlüssel für die Authentifizierung. Sie können es auch für Ihre eigenen SSH-Sitzungen verwenden, da es bequemer und sicherer ist (eine seltene Gelegenheit!) Als die Kennwortauthentifizierung. Sehen Sie sich dieses Tutorial an, wie Sie es einrichten können.

Fügen Sie dann Ihren privaten Schlüssel in CircleCl in Project Settings -> SSH Permissions ein, wie beschrieben hier . Sie müssten den privaten Schlüssel von Ihrem lokalen Computer aus dem Schlüsselpaar kopieren, dessen öffentlicher Schlüssel Sie dem deploy -Benutzer auf dem Server hinzugefügt haben. CircleCI hat dann SSH Zugriff auf Ihren Server.

Sie können den Hostnamen für die Domäne festlegen, die auf Ihren Server oder die IP Ihres Servers verweist, oder Sie lassen den Eintrag leer, damit dieser Schlüssel in allen Hosts verwendet wird.

    
p4sh4 09.09.2015, 02:28
quelle
0

Eigentlich weiß ich nicht, ob es wie folgt funktionieren soll. Aber das ist der einzige Weg, wie ich es am Ende laufen habe, nachdem ich alle möglichen Kombinationen von öffentlichen / privaten SSH-Schlüsselplatzierungen ausprobiert habe.

  1. Auf dem Server git clone GitHub repo in einen neuen Ordner. Ceckout entwickeln Zweig.
  2. Erstellen Sie auf dem Server einen neuen Benutzer, fügen Sie ihn zu www-data group, chown dem Ordner hinzu.
  3. Erstellen Sie auf dem Server ein SSH-Schlüsselpaar für den neuen Benutzer.
  4. Auf dem Server fügen Sie den neuen Schlüssel des neuen Benutzers der authorized_keys -Datei des neuen Benutzers hinzu.
  5. Fügen Sie den öffentlichen Schlüssel als Bereitstellungsschlüssel zum Repo auf GitHub hinzu.
  6. Fügen Sie den privaten Schlüssel zum Projekt in Circle (Projekteinstellungen & gt; Berechtigungen & gt; SSH-Berechtigungen) hinzu und stellen Sie sicher, dass ein Hostname festgelegt ist.
  7. Fügen Sie Folgendes am Ende Ihrer circle.yml hinzu:

    %Vor%
  8. Commit und schieben Sie dies in den Zweig entwickeln.
  9. Auf dem Server loggen Sie sich als neuer Benutzer ein, entwickeln Sie den Zweig und ziehen Sie ihn mindestens einmal.
  10. Erstellen Sie auf Ihrem lokalen Computer im Entwicklungszweig ein neues Commit und drücken Sie es. Schaue auf Build Circle CI.
leymannx 18.05.2017 11:26
quelle