I would like to view this page in
Manchmal möchte man während eines Buildvorgangs Verbindungen zu unterschiedlichen Systemen herstellen. Zum Beispiel um über SSH ein Deployment-Skript auf einem Remote-System zu starten.
Sehen wir uns an, wie das geht.
Secure Shell (SSH) wird aufgrund seiner Sicherheit, Vielseitigkeit und Effizienz häufig und für verschiedene Zwecke verwendet. Hier sind einige Gründe für die Verwendung von SSH:
Gehen Sie zu Edit configuration | Build Steps, um einen schnellen Blick auf Ihre Build-Schritte zu werfen.
Stellen Sie sich vor, Sie möchten einen Build-Schritt hinzufügen, der über die Befehlszeile ein Deployment ausführt. Dazu stellt TeamCity über SSH eine Verbindung zu einem Remote-Server her und führt auf diesem Server Befehle aus, etwa um eine Datei von Amazon S3 herunterzuladen und auszuführen. Damit die SSH-Verbindung funktioniert, müssen Sie einen SSH-Schlüssel bereitstellen.
Die Frage hierbei lautet: Wie gelangt der SSH-Schlüssel auf den Build-Agent, wenn er nicht bereits in Ihrem Agent-Image enthalten ist?
Dazu müssen wir den Befehlszeilen-Build-Schritt loswerden. To do that, click on the Runner type drop-down menu. Hier sehen Sie zwei Optionen: SSH Exec und SSH Upload.
SSH Exec bietet sich an, wenn Sie etwas auf einem Remote-System ausführen möchten. SSH Upload hilft Ihnen, Dateien sicher auf einen Server hochzuladen.
Wir wählen nun die Option SSH Exec aus und geben das Ziel sowie die Befehle für den Runner ein.
Unter Authentication method haben wir mehrere Möglichkeiten, um die Quelle des SSH-Schlüssels festzulegen.
Uploaded key: Der Schlüssel wird auf den TeamCity-Server hochgeladen. Der Server verschlüsselt ihn, sendet sie an den Build-Agent für die Dauer des Buildvorgangs und löscht ihn nach Abschluss des Buildvorgangs wieder.
Default private key und Custom private key: Wählen Sie diese Option, wenn ein Standard-Privatschlüssel an einem bestimmten Speicherort auf Ihrem Build-Agent vorinstalliert ist.
Sie können auch eine Kombination aus Benutzernamen und Passwort wählen oder sogar einen ausgeführten SSH-Agenten verwenden. Weitere Informationen zu SSH Exec finden Sie in unserer Dokumentation.
In diesem Tutorial verwenden wir die Option Uploaded key. Wir verwenden den Benutzernamen teamcity-deploy und überspringen das Setzen einer Passphrase. Dann laden wir den SSH-Schlüssel hoch.
Um den SSH-Schlüssel hochzuladen, gehen wir zu Buildpipelines project | SSH Keys. Danach wählen wir den privaten Schlüssel für unseren Server aus. Klicken Sie auf Upload SSH Key und wählen Sie eine Datei auf Ihrem Computer aus.
Gehen Sie danach zurück zu Build steps | SSH Exec und wählen Sie den privaten Schlüssel aus, den Sie gerade hochgeladen haben. Speichern Sie die Änderungen mit Save und führen Sie den Build aus.
Sobald der Buildvorgang abgeschlossen ist, öffnen Sie das Build Log und überprüfen Sie die Ausgabe des Build-Schritts SSH Exec. Hier können wir sehen, dass TeamCity den Befehl ausgeführt hat, den Sie beim Konfigurieren des Build-Schritts eingegeben haben. Sie sehen auch das Ergebnis des Befehls echo 'running deploy.sh...'
.
Das war’s!
Dieses Tutorial zeigt Ihnen, wie Sie mit TeamCity die Befehlszeilenskripte ausführen, die die Grundbausteine Ihrer Pipelines bilden.
In diesem Tutorial sehen wir uns genauer an, wie Sie in TeamCity mithilfe von Artefakten Daten aus Ihren Builds exportieren können.
TeamCity bietet einen großen Funktionsumfang für die Optimierung Ihrer Builds. In diesem Tutorial erfahren Sie, wie Sie spezielle Runner verwenden können und warum dies sinnvoll ist.