Jenkins Automation Server Installation mit Nginx auf CentOS 7
Jenkins ist ein Open Source Continuous Integration Server. Jenkins ist in JAVA geschrieben und kann verwendet werden, um verschiedene Aufgaben im Zusammenhang mit der Softwareentwicklung zu automatisieren, wie z.B. das Testen und Bereitstellen von Gebäuden. Es unterstützt viele Versionskontrollsysteme wie git, SVN, mercurial etc.
In diesem Tutorial werden wir den Jenkins Automation Server auf dem CentOS 7 Server installieren. Wir werden Nginx auch als Reverse-Proxy für Jenkins einrichten.
Voraussetzung
- Minimaler CentOS 7 Server
- Root-Privilegien. Dieses Handbuch ist als root-Benutzer geschrieben, wenn Sie als sudo-Benutzer angemeldet sind, führen Sie sudo -i aus.
Basis-System aktualisieren
Vor der Installation eines Pakets wird empfohlen, die Pakete und das Repository mit dem folgenden Befehl zu aktualisieren.
yum -y update
Sobald Ihr System aktualisiert ist, fahren Sie mit der Installation von JAVA fort.
JAVA 8 installieren
Jenkins unterstützt sowohl OpenJDK als auch Oracle JAVA, in diesem Tutorial werden wir die neueste Version von OpenJDK auf dem Server installieren. Führen Sie den folgenden Befehl aus, um OpenJDK auf Ihrem Server zu installieren.
yum install java-1.8.0-openjdk
Sie können nun die Java-Version mit dem folgenden Befehl überprüfen.
java -version
Sie erhalten die folgende Ausgabe.
[[email protected] ~]# java -version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
Außerdem müssen Sie prüfen, ob die Umgebungsvariable JAVA_HOME gesetzt ist. Führen Sie den folgenden Befehl aus.
echo $JAVA_HOME
Wenn Sie eine Null- oder Leerausgabe erhalten, müssen Sie die Variable JAVA_HOME manuell setzen. Bearbeiten Sie die .bash_profile-Datei mit Ihrem bevorzugten Editor. In diesem Tutorial werden wir den Nano-Editor verwenden. Führen Sie den folgenden Befehl aus, um .bash_profile mit nano zu bearbeiten.
nano ~/.bash_profile
Füge nun die folgenden Zeilen am Ende der Datei hinzu.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/ export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/jre
Quellen Sie nun die Datei mit dem folgenden Befehl.
source ~/.bash_profile
Jetzt können Sie den Befehl echo $JAVA_HOME erneut ausführen, um zu überprüfen, ob die Umgebungsvariable gesetzt ist oder nicht.
[[email protected] ~]# echo $JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/
Nachdem Sie nun JAVA installiert haben, können Sie mit der Installation von Jenkins fortfahren.
Jenkins installieren
Jenkins kann direkt installiert werden, indem das Repository hinzugefügt und der GPG-Schlüssel importiert wird. Fügen Sie das Jenkins-Repository zu Ihrem System hinzu, indem Sie den folgenden Befehl ausführen.
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
Wenn du wget nicht installiert hast, kannst du yum -y install wget ausführen.
Importieren Sie den GPG-Schlüssel, indem Sie den folgenden Befehl ausführen.
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
Sobald der Import erfolgreich war, können Sie Jenkins installieren, indem Sie den folgenden Befehl ausführen.
yum -y install jenkins
Jenkins ist jetzt auf Ihrem Server installiert. Alle erforderlichen Pakete sind nun installiert. Das Installationsprogramm hat auch einen neuen Benutzer jenkins erstellt, um den Prozess auszuführen. Sie können weitermachen, um den Server zu starten.
Jenkins starten
Sie können Jenkins starten, indem Sie den folgenden Befehl ausführen.
systemctl start jenkins
Um Jenkins zu stoppen, können Sie den folgenden Befehl ausführen.
systemctl stop jenkins
Sie können den Status des Prozesses überprüfen, indem Sie den folgenden Befehl ausführen.
systemctl status jenkins
Nginx installieren
Anstatt auf die Anwendung auf Port 8080 zuzugreifen, können wir einen Reverse-Proxy für die Anwendung entweder mit Apache oder Nginx Webserver erstellen. In diesem Tutorial werden wir nginx als Reverse-Proxy für Ihre Anwendung verwenden. Nun läuft nginx hinter dem nginx-Proxy-Server. nginx ist im Standard YUM-Repository nicht verfügbar. Sie müssen das EPEL-Repository installieren, um Nginx zu installieren.
yum -y install epel-release
Jetzt können Sie Nginx installieren, indem Sie es ausführen:
yum -y install nginx
Erstellen Sie einen neuen Serverblock, indem Sie den folgenden Befehl ausführen.
nano /etc/nginx/conf.d/jenkins.conf
Füllen Sie die Datei mit dem folgenden Inhalt. Ersetzen Sie ci.yourdomain.com durch Ihren aktuellen Domainnamen.
upstream jenkins{ server 127.0.0.1:8080; } server{ listen 80; server_name ci.yourdomain.com; access_log /var/log/nginx/jenkins.access.log; error_log /var/log/nginx/jenkins.error.log; proxy_buffers 16 64k; proxy_buffer_size 128k; location / { proxy_pass http://jenkins; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } }
Speichern Sie die Datei und verlassen Sie den Editor. Nun können Sie Nginx starten, indem Sie den folgenden Befehl ausführen.
systemctl start nginx
Damit Nginx beim Booten automatisch starten kann, indem Sie den folgenden Befehl ausführen.
systemctl enable nginx
Firewall und SELinux konfigurieren
Wenn Sie eine Firewall auf Ihrem Server haben, müssen Sie den Port 8080 und den Standard-HTTP-Port durch die Firewall lassen. Führen Sie den folgenden Befehl aus, um die Firewall-Regeln für die Ports 8080 und 80 hinzuzufügen.
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-service=http --permanent
Laden Sie die Firewall-Zonen durch Ausführen neu:
firewall-cmd --reload
Konfigurieren Sie SELinux für die nginx-Proxy-Konfiguration, indem Sie den folgenden Befehl ausführen.
setsebool httpd_can_network_connect 1 -P
Jenkins konfigurieren
Sie können nun auf die Weboberfläche des Jenkins CI-Servers zugreifen, indem Sie auf die folgende Webadresse gehen.
http://ci.yourdomain.com
Ersetzen Sie ci.yourdomain.com durch Ihre aktuelle Domain. Sie werden die folgende Schnittstelle sehen.
Es wird Sie nach Ihrem anfänglichen Admin-Passwort fragen, das vom Installer generiert und in der Datei /var/lib/jenkins/secrets/initialAdminPassword gespeichert wird. Führen Sie den folgenden Befehl aus, um das anfängliche Administratorkennwort zu erhalten.
cat /var/lib/jenkins/secrets/initialAdminPassword
Verwenden Sie das Passwort, um sich anzumelden, und fahren Sie fort.
Im nächsten Abschnitt werden Sie gefragt, welche Plugins Sie installieren möchten, für Anfänger wird empfohlen, die Option Vorgeschlagene Plugins installieren zu wählen.
Dadurch werden alle Plugins installiert, die für den Start notwendig sind.
Auf der nächsten Schnittstelle werden die Plugins installiert.
Jetzt müssen Sie einen Administratorbenutzer für Ihr Jenkins Admin Dashboard erstellen.
Schließlich werden Sie zum administrativen Dashboard von Jenkins weitergeleitet.
Fazit
Sie können Jenkins nun für die kontinuierliche Integration in die Softwareentwicklung nutzen. Sie können mehr über Jenkins erfahren, indem Sie auf die Jenkins Website gehen.