GoCD unter CentOS 7 mit Blockspeicher einrichten

GoCD ist eine kostenlose Plattform für Automatisierung und kontinuierliche Softwarebereitstellung. Sie erlaubt die Erstellung komplexer Deployment-Pipelines, sowohl sequentiell als auch parallel. Durch integrierte Wertstromdiagramme wird die Darstellung selbst verschachtelter Abläufe erleichtert. Außerdem lassen sich Builds vergleichen und gezielt bestimmte Anwendungsstände bereitstellen.

Das GoCD-System besteht aus einem Server und mehreren Agenten. Der Server übernimmt zentrale Aufgaben wie das Bereitstellen von Jobs an die Agenten und stellt ein webbasiertes Dashboard bereit. Die Agenten wiederum führen diese Jobs aus und steuern die Deployments.

Voraussetzungen

  • Ein CentOS 7 Server mit mindestens 1 GB Arbeitsspeicher
  • Ein Benutzerkonto mit Sudo-Rechten
  • Eine Domain, die auf den Server verweist

Zur Veranschaulichung wird im Tutorial die IP-Adresse 192.168.1.1 und die Domain gocd.example.com verwendet. Ersetze diese durch deine tatsächlichen Werte.

Bevor du fortfährst, bring dein System mit einem CentOS 7 Update auf den neuesten Stand. Danach kannst du Java installieren.

Java installieren

GoCD benötigt Java 8 und ist mit OpenJDK sowie Oracle Java kompatibel. In diesem Fall wird OpenJDK 8 verwendet, welches über das YUM-Repository verfügbar ist.

Installiere Java mit folgendem Befehl:

sudo yum -y install java-1.8.0-openjdk-devel

Überprüfe die Java-Version:

Beispielausgabe:

[user@centron~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Ermittle nun den vollständigen Pfad zur Java-Installation:

Erwartete Ausgabe:

[user@centron~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre/bin/java

Lege anschließend die Umgebungsvariablen JAVA_HOME und JRE_HOME fest:

echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre" >> ~/.bash_profile

Hinweis: Verwende den bei dir ermittelten Pfad, da dieser je nach Java-Version abweichen kann.

Aktiviere die Änderungen im Profil:

Kontrolliere abschließend, ob JAVA_HOME korrekt gesetzt wurde:


[user@centron~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64


GoCD installieren

Da GoCD auf Java basiert, muss Java bereits installiert sein. Füge anschließend das offizielle GoCD-Repository dem System hinzu:

sudo curl https://download.gocd.org/gocd.repo -o /etc/yum.repos.d/gocd.repo

Installiere danach den GoCD-Server:

sudo yum install -y go-server

Starte den Dienst und aktiviere ihn für den automatischen Systemstart:

sudo systemctl start go-server
sudo systemctl enable go-server

Erstelle ein Verzeichnis für die Speicherung der Build-Artefakte:

sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts

Blockspeicher konfigurieren

Da in CI/CD-Umgebungen regelmäßig neue Dateien entstehen, empfiehlt es sich, ein separates Laufwerk für Artefakte zu nutzen. So lassen sich Speicherengpässe und Ausfälle vermeiden.

Falls du dich für ein zusätzliches Laufwerk entscheidest, verbinde es und erstelle eine neue Partition:

sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%

Formatiere die neue Partition:

Binde das Laufwerk ein und mache die Einbindung dauerhaft:

sudo mkdir /mnt/artifacts
sudo cp /etc/fstab /etc/fstab.backup
echo "
/dev/vdb1 /mnt/artifacts ext4 defaults,noatime 0 0" | sudo tee -a /etc/fstab
sudo mount /mnt/artifacts

Prüfe mit df, ob das Laufwerk korrekt eingebunden wurde:

[user@centron~]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       20616252 6313892  13237464  33% /

...
/dev/vdb1       10188052   36888   9610596   1% /mnt/artifacts

Weise dem GoCD-Nutzer die Berechtigungen auf das Artefaktverzeichnis zu:

sudo chown -R go:go /mnt/artifacts

GoCD-Agent installieren

GoCD-Agenten übernehmen Aufgaben der kontinuierlichen Integration sowie die Ausführung von Pipeline-Schritten. Sobald Änderungen im Quellcode erkannt werden, weist der Server diese Aufgaben an verfügbare Agenten zu.

Installiere den Agenten über YUM:

sudo yum install -y go-agent

Aktiviere und starte den Agenten-Dienst:

sudo systemctl start go-agent
sudo systemctl enable go-agent

Nach der Installation auf dem lokalen Server erscheint der Agent automatisch als aktiver Worker im GoCD-Dashboard.

Fazit

Mit dieser Anleitung hast du erfolgreich eine vollständige GoCD-Umgebung für kontinuierliche Softwarebereitstellung unter CentOS 7 eingerichtet. Du hast Java, den GoCD-Server und den Agenten installiert und das System durch Let’s Encrypt SSL und Nginx als Reverse Proxy abgesichert. Zusätzlich wurde die Authentifizierung konfiguriert, Artefaktspeicherung eingerichtet und die Firewall korrekt angepasst, um einen stabilen Betrieb zu gewährleisten.

Dieses Setup erlaubt dir die Verwaltung komplexer Deployment-Prozesse mit hoher Transparenz und Flexibilität. Achte darauf, SSL-Zertifikate regelmäßig zu erneuern, die Speicherauslastung im Blick zu behalten und dein System stets aktuell zu halten – so sicherst du die langfristige Stabilität und Sicherheit deiner CI/CD-Umgebung.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: