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:
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:
readlink -f $(which java)
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:
source ~/.bash_profile
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:
sudo mkfs.ext4 /dev/vdb1
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.