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.
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.
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.
git clone
GitHub repo in einen neuen Ordner. Ceckout entwickeln Zweig. www-data
group, chown
dem Ordner hinzu. authorized_keys
-Datei des neuen Benutzers hinzu. Fügen Sie Folgendes am Ende Ihrer circle.yml
hinzu:
Tags und Links ruby-on-rails capistrano circleci