So installieren Sie Concourse CI unter Ubuntu 16.04

Einführung

Concourse CI ist ein modernes, skalierbares kontinuierliches Integrationssystem, mit dem das Testen von Pipelines mit einer zusammensetzbaren deklarativen Syntax automatisiert werden kann. Concourse baut auf dem Erfolg früherer CI-Systeme auf und zielt darauf ab, das Pipeline-Management zu vereinfachen und "Schneeflockenserver" zu eliminieren, sodass der Testserver ebenso reguliert ist wie der von ihm verarbeitete Code.

In diesem Tutorial zeigen wir Ihnen, wie Sie Concourse CI auf einem Ubuntu 16.04-Server installieren. Wir werden eine PostgreSQL-Datenbank für die Verwendung als Backend konfigurieren, die Concourse-Binärdateien herunterladen und installieren und dann die Web- und Worker-Prozesse konfigurieren, mit denen wir kontinuierliche Integrations-Pipelines erstellen und ausführen können.

Voraussetzungen

Um dieses Handbuch zu vervollständigen, benötigen Sie einen Ubuntu 16.04-Server mit mindestens * 1 GB RAM *. Konfigurieren Sie einen Benutzer ohne Rootberechtigung (+ sudo +) und eine Firewall wie in der Ubuntu 16.04 ersten Serverkonfiguration beschrieben Anleitung, bevor Sie fortfahren.

Installieren und konfigurieren Sie PostgreSQL

Bevor wir die Concourse CI-Binärdateien herunterladen, sollten wir eine PostgreSQL-Instanz auf unserem Server einrichten. Concourse verwendet die PostgreSQL-Datenbank zum Speichern der Pipeline-Daten.

Aktualisieren Sie zunächst den lokalen Paketindex, um die lokale Ansicht der verfügbaren Dateien zu aktualisieren. Installieren Sie anschließend die Pakete + postgresql + und + postgresql-contrib + aus den Ubuntu-Standardrepositorys:

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib

Sobald die Datenbanksoftware installiert ist, erstellen wir einen dedizierten PostgreSQL-Benutzer mit dem Namen "+ concourse ", um die Concourse-Assets im Datenbanksystem zu verwalten. Um diesen Benutzer zu erstellen, verwenden wir " sudo ", um als " postgres +" - Systembenutzer zu fungieren, der Administratorzugriff auf das Datenbanksystem hat:

sudo -u postgres createuser concourse

Standardmäßig versucht Concourse, eine Verbindung zu einer Datenbank mit dem Namen "+ atc " herzustellen. Concourse nennt seinen wichtigsten Web- und API-Hub "ATC", was für "Air Traffic Control" steht. Wir können diese Datenbank erstellen und dem Benutzer " concourse +" den Besitz zuweisen, um den entsprechenden Zugriff zu ermöglichen:

sudo -u postgres createdb --owner=concourse atc

Mit unserer Datenbank können wir jetzt die Concourse CI-Binärdateien herunterladen und installieren.

Laden Sie die ausführbaren Concourse CI-Dateien herunter und installieren Sie sie

Concourse bietet sowohl auf der Website als auch auf GitHub Links zu kompilierten ausführbaren Dateien für die Linux-Plattform.

Am einfachsten finden Sie sie auf der Concourse CI-Downloadseite. Klicken Sie im Abschnitt * Downloads * im Abschnitt * Concourse Binaries * mit der rechten Maustaste und kopieren Sie den Link-Speicherort für den Download der * Linux * -Plattform. Lassen Sie diese Seite geöffnet, wir werden gleich darauf zurückkommen.

Wechseln Sie auf Ihrem Server in das Verzeichnis "+ / tmp " und laden Sie den kopierten Link mit " curl +" herunter:

cd /tmp
curl -LO

Als nächstes werden wir den neuesten + fly + Kommandozeilen-Client herunterladen. Zurück auf der Concourse CI-Downloadseite im Abschnitt * Downloads * im Abschnitt * Fly Binaries * mit der rechten Maustaste klicken und den Link-Speicherort für * Linux kopieren * Plattform herunterladen.

Laden Sie auf Ihrem Server den kopierten Link mit + curl + erneut nach + / tmp + herunter:

cd /tmp
curl -LO

Wenn die Download-Anfrage zu einem Fehler führte, enthalten die Dateien anstelle eines Binärprogramms eine HTTP-Fehlermeldung. Überprüfen Sie, ob es sich bei den Dateien um ausführbare Binärdateien handelt, indem Sie Folgendes eingeben:

file *linux_amd64 | grep executable
Outputconcourse_linux_amd64: ELF 64-bit LSB , x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=3f24eae5da950594d8d1aaea7631bc20883afba3, not stripped
fly_linux_amd64:       ELF 64-bit LSB , x86-64, version 1 (SYSV), statically linked, not stripped

Die obige Ausgabe zeigt an, dass die Dateien ausführbar sind. Wir können den Dateien ausführbare Berechtigungen hinzufügen, das Suffix "+ _linux_amd64 " entfernen und sie in das Verzeichnis " / usr / local / bin +" verschieben, indem wir Folgendes eingeben:

chmod +x concourse* fly*
sudo mv concourse* /usr/local/bin/concourse
sudo mv fly* /usr/local/bin/fly

Wenn Sie nach der Version jedes Programms fragen, dient dies als kleine Überprüfung, um sicherzustellen, dass alles ordnungsgemäß funktioniert:

cd ~
concourse --version
fly --version
Output

Nachdem unsere Binärdateien installiert sind, können wir mit der Konfiguration von Concourse beginnen.

Erstellen Sie die Concourse-CI-Konfigurationsassets

Als nächstes können wir die Konfiguration und die Schlüssel zusammenstellen, die Concourse zum Starten verwenden wird.

Erstellen Sie zunächst ein Konfigurationsverzeichnis, in dem alle relevanten Dateien gespeichert werden können:

sudo mkdir /etc/concourse

Jetzt können wir Verschlüsselungsschlüssel generieren und Dateien erstellen, die unsere Concourse-Konfiguration definieren.

Erstellen der Schlüsseldateien

Concourse besteht aus einigen verwandten Komponenten, die alle in der Lage sein müssen, sicher miteinander zu kommunizieren.

Der ATC ist der Haupt-Hub, der Web- und API-Anforderungen verarbeitet und Pipelines koordiniert. Workers Container verwalten, um die in der Pipeline definierten CI / CD-Tasks auszuführen. Der TSA ist ein benutzerdefinierter SSH-Server, der Mitarbeiter sicher beim ATC registriert.

Obwohl alle diese Komponenten auf einem einzigen Server ausgeführt werden, erwarten der Worker und der TSA eine sichere Kommunikation. Um diese Erwartung zu erfüllen, erstellen wir drei Schlüsselsätze:

  • ein Schlüsselpaar für die TSA-Komponente

  • ein Schlüsselpaar für den Arbeiter

  • Ein Sitzungssignaturschlüsselpaar, das zum Signieren von Token für Benutzersitzungen und für die Kommunikation zwischen TSA und ATC verwendet wird

Da diese beim Start der einzelnen Komponenten automatisch verwendet werden, müssen diese Schlüssel ohne Kennwort erstellt werden. Wir können jedes dieser Schlüsselpaare im Verzeichnis "+ / etc / concourse +" erstellen, indem wir Folgendes eingeben:

sudo ssh-keygen -t rsa -q -N '' -f /etc/concourse/tsa_host_key
sudo ssh-keygen -t rsa -q -N '' -f /etc/concourse/worker_key
sudo ssh-keygen -t rsa -q -N '' -f /etc/concourse/session_signing_key

Wenn wir das Concourse-Verzeichnis einchecken, sehen wir, dass jetzt drei öffentliche und drei private Schlüssel verfügbar sind:

ls -l /etc/concourse
Outputtotal 24
-rw------- 1 root root 1679 May 11 17:19 session_signing_key
-rw-r--r-- 1 root root  394 May 11 17:19 session_signing_key.pub
-rw------- 1 root root 1679 May 11 17:19 tsa_host_key
-rw-r--r-- 1 root root  394 May 11 17:19 tsa_host_key.pub
-rw------- 1 root root 1675 May 11 17:19 worker_key
-rw-r--r-- 1 root root  394 May 11 17:19 worker_key.pub

Die TSA entscheidet anhand einer autorisierten Schlüsseldatei, welche Mitarbeiter berechtigt sind, eine Verbindung zum System herzustellen. Wir müssen die Datei mit den autorisierten Schlüsseln mit dem von uns generierten öffentlichen Schlüssel des Mitarbeiters vorab füllen, damit eine erfolgreiche Verbindung hergestellt werden kann.

Da dies unser einziger Arbeiter ist, können wir die Datei einfach kopieren:

sudo cp /etc/concourse/worker_key.pub /etc/concourse/authorized_worker_keys

Nachdem wir die Schlüsseldateien und eine erste Datei für autorisierte Mitarbeiter haben, können wir die Dateien erstellen, die unsere Concourse-Konfiguration definieren.

Erstellen der Umgebungskonfigurationsdateien

Die Concourse-Binärdatei liest nicht nativ aus einer Konfigurationsdatei. Es können jedoch Konfigurationswerte von Umgebungsvariablen übernommen werden, die beim Start des Prozesses übergeben werden.

In Kürze werden wir + systemd + Unit-Dateien erstellen, um unsere Concourse-Services zu definieren und zu verwalten. Die Unit-Dateien können Umgebungsvariablen aus einer Datei lesen und beim Start an den Prozess übergeben. Wir werden eine Datei erstellen, die die Variablen für den Concourse-Prozess "+ web " definiert, mit denen die ATC- und TSA-Komponenten gestartet werden, sowie eine weitere Datei für den Concourse-Prozess " worker +".

Erstellen und öffnen Sie eine Datei für den "+ web +" - Prozess, indem Sie Folgendes eingeben:

sudo nano /etc/concourse/web_environment

Im Folgenden werden die Umgebungsvariablen definiert, die von den ATC- und TSA-Komponenten benötigt werden. Jede Variable beginnt mit "+ CONCOURSE_ +".

Zunächst definieren wir einige statische Werte, die wir nicht ändern müssen. Diese Variablen definieren den Speicherort des privaten TSA und der Sitzungsschlüssel, die Datei, die die autorisierten Worker definiert, und den Speicherort des PostgreSQL-Sockets:

/ etc / concourse / web_environment

# These values can be used as-is
CONCOURSE_SESSION_SIGNING_KEY=/etc/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/etc/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/etc/concourse/authorized_worker_keys
CONCOURSE_POSTGRES_SOCKET=/var/run/postgresql

Als Nächstes werden einige Variablen festgelegt, die entsprechend Ihrer Umgebung geändert werden müssen. Das "+ CONCOURSE_EXTERNAL_URL +" definiert die IP-Adresse und den Port, an den der Dienst gebunden wird. Stellen Sie hier die öffentliche IP-Adresse und den Port 8080 Ihres Servers ein.

Wir werden auch einen Benutzernamen und ein Passwort für das "+ main +" - Team festlegen, das als Concourse-Verwaltungsgruppe fungiert. Hier können Sie einen beliebigen Benutzernamen und ein beliebiges Passwort auswählen. Sie können die Administratoranmeldeinformationen jederzeit ändern, indem Sie diese Werte ändern und den Dienst neu starten:

/ etc / concourse / web_environment

# These values can be used as-is
CONCOURSE_SESSION_SIGNING_KEY=/etc/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/etc/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/etc/concourse/authorized_worker_keys
CONCOURSE_POSTGRES_SOCKET=/var/run/postgresql

# Change these values to match your environment
CONCOURSE_BASIC_AUTH_USERNAME=
CONCOURSE_BASIC_AUTH_PASSWORD=
CONCOURSE_EXTERNAL_URL=http://:8080

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Als nächstes erstellen Sie eine Umgebungsdatei für den Prozess + worker +:

sudo nano /etc/concourse/worker_environment

Im Inneren definieren wir die Speicherorte des privaten Schlüssels des Workers, des öffentlichen Schlüssels des TSA und des Verzeichnisses, in dem der Worker seine Dateien speichern wird. Wir werden auch die Adresse festlegen, unter der die TSA erreichbar ist, in unserem Fall der Localhost. Sie können die folgenden Werte ohne Änderungen verwenden:

/ etc / concourse / worker_environment

# These values can be used as-is
CONCOURSE_WORK_DIR=/var/lib/concourse
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/etc/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/etc/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1:2222

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Erstellen eines dedizierten Systembenutzers und Anpassen von Berechtigungen

Bevor wir fortfahren, sollten wir einen dedizierten Linux-Benutzer erstellen, um den Concourse-Prozess "+ web +" auszuführen. Auf diese Weise können wir den Web-Service mit eingeschränkten Berechtigungen starten.

Aufgrund der Art und Weise, wie PostgreSQL die Authentifizierung standardmäßig handhabt, ist es wichtig, dass der Benutzername mit dem zuvor erstellten PostgreSQL-Benutzernamen übereinstimmt. Erstellen Sie einen Systembenutzer und eine Systemgruppe mit dem Namen "+ concourse +", indem Sie Folgendes eingeben:

sudo adduser --system --group concourse

Wir können dem neuen Benutzer das Eigentumsrecht für das Verzeichnis "+ / etc / concourse +" und dessen Inhalt geben, indem wir Folgendes eingeben:

sudo chown -R concourse:concourse /etc/concourse

Die Umgebungsdateien enthalten einige vertrauliche Daten wie den Administratorbenutzernamen und das Kennwort für den CI-Server. Passen Sie die Berechtigungen der Umgebungsdateien so an, dass normale Benutzer die Werte in diesen Dateien nicht lesen oder ändern können:

sudo chmod 600 /etc/concourse/*_environment

Unsere Konfigurationsressourcen befinden sich jetzt im Besitz des Systembenutzers "+ concourse +" mit eingeschränkten Berechtigungen für andere Benutzer.

Erstellen Sie Systemd Unit-Dateien für die Web- und Worker-Prozesse

Jetzt können Sie die Concourse CI-Einheitendateien definieren, mit denen die Anwendungsprozesse gestartet und verwaltet werden. Wir erstellen eine Datei für den "+ web " - Prozess, der die TSA- und ATC-Komponenten verarbeitet, und eine Datei für den " worker +" - Prozess, der Container für Pipeline-Aufgaben verarbeitet.

Erstellen der Concourse-Web Unit-Datei

Beginnen Sie mit der Erstellung einer "+ concourse-web.services" -Datei in der "+ / etc / systemd / system" -Datei:

sudo nano /etc/systemd/system/concourse-web.service

Fügen Sie den folgenden Inhalt ein:

/etc/systemd/system/concourse-web.service

[Unit]
Description=Concourse CI web process (ATC and TSA)
After=postgresql.service

[Service]
User=concourse
Restart=on-failure
EnvironmentFile=/etc/concourse/web_environment
ExecStart=/usr/local/bin/concourse web

[Install]
WantedBy=multi-user.target

Der erste Abschnitt der Datei legt die Einheitenbeschreibung für den "+ web +" - Prozess fest und gibt an, dass diese Einheit nach der PostgreSQL-Einheit gestartet werden soll, wenn über die Bestellung entschieden wird.

Der Abschnitt "+ [Service] " definiert die Art und Weise, wie der Service ausgeführt wird. Wir werden den Dienst als Benutzer ausführen, den wir zuvor konfiguriert haben, und systemd anweisen, den Dienst automatisch neu zu starten, wenn er fehlschlägt. Dies kann hilfreich sein, wenn der Prozess aufgrund von Speicherbeschränkungen oder ähnlichen Problemen abstirbt. Wir laden die zuvor definierte Datei " web_environment ", um die Umgebung einzurichten, und starten den eigentlichen Prozess, indem wir " concourse web +" aufrufen.

Im Abschnitt "+ [Install] +" erfahren Sie, wie Sie das Gerät an die Startreihenfolge des Systems binden, wenn Sie den Dienst so konfigurieren, dass er beim Systemstart gestartet wird.

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Erstellen der Concourse Worker Unit-Datei

Öffnen Sie als Nächstes eine ähnliche Datei, um den Prozess "+ worker +" zu definieren:

sudo nano /etc/systemd/system/concourse-worker.service

Fügen Sie den folgenden Inhalt ein:

/etc/systemd/system/concourse-worker.service

[Unit]
Description=Concourse CI worker process
After=concourse-web.service

[Service]
User=root
Restart=on-failure
EnvironmentFile=/etc/concourse/worker_environment
ExecStart=/usr/local/bin/concourse worker

[Install]
WantedBy=multi-user.target

Diese Einheit funktioniert ähnlich wie die Einheit "+ concourse-web ". Dieses Mal weisen wir das System an, den " worker " - Prozess zu starten, nachdem der " web " - Prozess gestartet wurde. Der " worker " - Prozess wird als " root " - Benutzer anstelle von " concourse " ausgeführt, da für die Containerverwaltung Administratorrechte erforderlich sind. Wir laden die Datei " worker_environment " und verwenden den Befehl " concourse worker +", um den Prozess zu starten.

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Passen Sie die Firewall an und starten Sie die Dienste

Mit unseren Gerätedateien können wir nun den Zugriff durch die Firewall ermöglichen und die Dienste starten.

Der "+ web " - Prozess wartet auf Verbindungen an Port 8080, daher müssen wir den Zugriff auf diesen Port in der " ufw +" - Firewall öffnen:

sudo ufw allow 8080

Die vom "+ worker +" - Prozess verwendeten Container erfordern Weiterleitungszugriff, damit sie ordnungsgemäß auf das Internet zugreifen und DNS-Abfragen lösen können. Wir können dies aktivieren, indem wir Folgendes eingeben:

sudo ufw default allow routed

Wir können unsere Dienste jetzt starten, indem wir Folgendes eingeben:

sudo systemctl start concourse-web concourse-worker

Wir können überprüfen, ob beide Dienste korrekt gestartet wurden, indem wir Folgendes eingeben:

sudo systemctl status concourse-web concourse-worker
Output● concourse-web.service - Concourse CI web process (ATC and TSA)
  Loaded: loaded (/etc/systemd/system/concourse-web.service; disabled; vendor preset: enabled)
  Active:  since Thu 2017-05-11 20:18:16 UTC; 1min 40s ago
Main PID: 9954 (concourse)
   Tasks: 7
  Memory: 100.0M
     CPU: 2.058s
  CGroup: /system.slice/concourse-web.service
          └─9954 /usr/local/bin/concourse web

May 11 20:19:51 testatc concourse[9954]: {"timestamp":"1494533991.818562269","source":"tsa","message":"tsa.connection.keepalive","log_level":1,"data":{"remote":"127.0.0.1:48764","session":"1","type":"keepalive"}}
. . .

● concourse-worker.service - Concourse CI worker process
  Loaded: loaded (/etc/systemd/system/concourse-worker.service; disabled; vendor preset: enabled)
  Active:  since Thu 2017-05-11 20:18:16 UTC; 1min 39s ago
Main PID: 9960 (concourse)
   Tasks: 9
  Memory: 619.6M
     CPU: 20.353s
  CGroup: /system.slice/concourse-worker.service
          └─9960 /usr/local/bin/concourse worker

May 11 20:19:12 testatc concourse[9960]: {"timestamp":"1494533952.909682751","source":"tsa","message":"tsa.connection.channel.forward-worker.heartbeat.start","log_level":1,"data":{"remote":"127.0.0.1:48764","session":"1.1.1.7","worker-address":"127.0.0.1:38993","worker-platform":"linux","worker-tags":""}}
. . .

Stellen Sie sicher, dass beide Dienste "active (running)" lesen und die Protokollzeilen keine offensichtlichen Fehler enthalten. Achten Sie besonders auf den "+ web +" - Dienst, um sicherzustellen, dass die Protokollzeilen keine Verbindungsprobleme mit der Datenbank anzeigen.

Wenn die Dienste erfolgreich gestartet wurden, aktivieren Sie sie, damit sie bei jedem Start des Servers gestartet werden:

sudo systemctl enable concourse-web concourse-worker

Überprüfen Sie den Zugriff in der Befehlszeile und über das Webinterface

Nachdem die Concourse-Dienste ausgeführt werden, sollten wir überprüfen, ob wir Zugriff haben.

Überprüfen des Zugriffs in der Befehlszeile

Überprüfen wir zunächst, ob wir mit dem Befehlszeilen-Client "+ fly +" auf den Concourse-Dienst zugreifen können.

Wir müssen uns mit dem administrativen Benutzernamen und Passwort anmelden, die wir in der Datei "+ / etc / concourse / web_environment " mit dem Unterbefehl " login " konfiguriert haben. Eine einzige " fly +" - Binärdatei kann verwendet werden, um mehrere Concourse-Server zu kontaktieren und zu verwalten. Der Befehl verwendet daher das Konzept "Ziele" als Alias ​​für verschiedene Server. Wir werden unser Ziel "lokal" nennen, um uns beim lokalen Concourse-Server anzumelden:

fly -t local login -c http://127.0.0.1:8080

Sie werden aufgefordert, den Benutzernamen und das Passwort für das "+ main " - Team einzugeben, die wir in der " web_environments +" - Datei festgelegt haben. Nach der Eingabe Ihrer Anmeldeinformationen sollte "Ziel gespeichert" angezeigt werden:

Outputlogging in to team 'main'

username:
password:

target saved

Dies zeigt an, dass wir uns erfolgreich anmelden konnten. Überprüfen Sie, während wir hier sind, ob der Arbeitsprozess in der Lage war, sich erfolgreich bei der TSA-Komponente zu registrieren, indem Sie Folgendes eingeben:

fly -t local workers
Outputname              containers  platform  tags  team  state    version
concourse-server  0           linux     none  none  running  1.0

Mit dem Befehl "+ fly " werden Pipelines konfiguriert und der Concourse CI-Dienst verwaltet. Der Befehl ` fly help +` liefert Informationen zu zusätzlichen Befehlen.

Überprüfen des Zugriffs über das Webinterface

Überprüfen Sie anschließend den Webzugriff, indem Sie die IP-Adresse Ihres Servers und anschließend "+: 8080 +" in einem Webbrowser aufrufen:

http://:8080

Sie sollten in der Lage sein, auf die erste Concourse CI-Seite zuzugreifen:

Von hier aus können Sie optional den Befehl "+ fly " als Befehlszeilen-Client auf Ihren lokalen Computer herunterladen, indem Sie auf das Ihrer Plattform entsprechende Bild klicken. Auf diese Weise können Sie Ihre CI-Umgebung verwalten, ohne sich beim Server anzumelden. Denken Sie daran, die öffentliche IP-Adresse Ihres Servers anstelle von " 127.0.0.1 " anzugeben, wenn Sie sich zum ersten Mal mit " fly +" anmelden (lesen Sie die folgende Warnung zur Verschlüsselung, bevor Sie sich remote anmelden).

Wenn Sie auf den * Login * -Link in der oberen rechten Ecke klicken, können Sie sich bei der Weboberfläche anmelden. Zunächst werden Sie aufgefordert, Ihr Team auszuwählen. Das * main * -Team, bei dem es sich um die administrative Gruppe handelt, ist standardmäßig die einzige verfügbare Auswahl:

Auf der nächsten Seite werden Sie aufgefordert, Ihre Anmeldeinformationen einzugeben.

Nachdem Sie die Anmeldeinformationen eingegeben haben, die Sie in der Datei "+ web_environment +" konfiguriert haben, werden Sie angemeldet und zur Standard-Platzhalter-Oberfläche zurückgeführt:

image: https: //assets.digitalocean.com/articles/concourseci_install_1604/placeholder_interface.png [Concourse CI select main team]

Sobald Sie Ihre Pipeline-Konfiguration mit "+ fly +" an den Server übergeben, wird dieser Bildschirm durch eine Schnittstelle ersetzt, über die Sie Ihre Pipeline-Aktivität überwachen können.

Fazit

In diesem Handbuch haben wir PostgreSQL und die Concourse-Binärdateien installiert, Verschlüsselungsschlüssel eingerichtet und Concourse und den Netzwerkzugriff konfiguriert. Nach dem Start der Dienste haben wir uns lokal mit dem Befehl "+ fly +" angemeldet und auf die Weboberfläche zugegriffen, um die Funktionalität zu bestätigen.

Wie bereits erwähnt, ist es wichtig, die Web- und API-Gateways mit SSL zu schützen, bevor Sie Concourse für die eigentliche Arbeit verwenden. Folgen Sie unserem Leitfaden unter https://www.digitalocean.com/community/tutorials/how-to-secure-concourse-ci-with-ssl-using-nginx-on-ubuntu-16-04, um einen SSL-Reverse-Proxy einzurichten für Concourse CI mit Nginx], um den sicheren Zugriff auf Ihren Server zu konfigurieren, bevor Sie remote mit dem Server interagieren.

Weitere Informationen zum Hinzufügen von Pipelines zu Ihrem Concourse-Server mit + fly + finden Sie im Beispiel https://concourse.ci/hello-world.html["hello world ”in der Concourse-Dokumentation.