Jak zainstalować Jenkins na Windows, Ubuntu i CentOS?

Przewodnik krok po kroku: instalacja Jenkinsa.

Ten artykuł ma na celu przedstawienie procesu instalacji Jenkinsa na różnych systemach operacyjnych.

Chociaż poszczególne etapy instalacji mogą się nieznacznie różnić w zależności od systemu, konfiguracja samego Jenkinsa pozostaje zasadniczo taka sama.

Czym właściwie jest Jenkins?

Jenkins to otwarte oprogramowanie służące do automatyzacji, które ułatwia programistom realizację projektów i aplikacji. Umożliwia budowanie i wdrażanie oprogramowania, zapewniając potężną platformę do ciągłej integracji i ciągłego dostarczania, niezależnie od używanej platformy.

Jenkins, będąc aplikacją Java, może działać na dowolnym komputerze z zainstalowanym środowiskiem Java Runtime Environment (JRE).

Jeśli chcesz zgłębić tajniki Jenkinsa, warto rozważyć ten kurs online, który wprowadzi Cię w świat Jenkinsa od podstaw.

Wymagania wstępne

Niezbędne jest posiadanie zainstalowanego JDK w wersji 8 lub wyższej. Jeśli go nie masz, możesz pobrać odpowiedni pakiet z tej strony.

Instalacja Jenkinsa w systemie Windows

Po instalacji i konfiguracji JDK możesz przejść do pobrania i zainstalowania Jenkinsa. Najnowszy pakiet MSI dla systemu Windows znajdziesz tutaj.

  • Uruchom instalator (plik jenkins.msi) poprzez dwukrotne kliknięcie.
  • Postępuj zgodnie z instrukcjami, klikając „Dalej”, a następnie „Zainstaluj”.

  • Możesz zmienić folder instalacyjny, klikając „Zmień”. Jeśli chcesz zachować domyślną ścieżkę, kliknij „Dalej”.

  • Po zakończeniu procesu instalacji, kliknij „Zakończ”.

Instalacja Jenkinsa w systemie Windows jest tak samo prosta jak instalacja większości innych programów.

Instalacja Jenkinsa na Ubuntu

Upewnij się, że masz zainstalowane JDK 8 lub nowsze na swoim komputerze z systemem Ubuntu. Jeśli nie, skorzystaj z poniższego polecenia, aby zainstalować wymagany pakiet:

sudo apt install default-jdk-headless

[email protected]:~$ sudo apt install default-jdk-headless
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  default-jdk-headless
0 upgraded, 1 newly installed, 0 to remove and 102 not upgraded.
Need to get 1132 B of archives.
After this operation, 6144 B of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 default-jdk-headless amd64 2:1.11-68ubuntu1~18.04.1 [1132 B]
Fetched 1132 B in 2s (676 B/s)
Selecting previously unselected package default-jdk-headless.
(Reading database ... 30061 files and directories currently installed.)
Preparing to unpack .../default-jdk-headless_2%3a1.11-68ubuntu1~18.04.1_amd64.deb ...
Unpacking default-jdk-headless (2:1.11-68ubuntu1~18.04.1) ...
Setting up default-jdk-headless (2:1.11-68ubuntu1~18.04.1) ...
[email protected]:~$

Aby zweryfikować, czy Java została poprawnie zainstalowana, wpisz:

wersja java

[email protected]:~$ java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)
[email protected]:~$

Po upewnieniu się, że Java jest zainstalowana, można przejść do instalacji Jenkinsa.

Etapy instalacji:

Krok 1: Uruchom terminal (Ctrl + Alt + T).

Krok 2: Dodaj klucz repozytorium Jenkinsa do swojego systemu:

wget -q -O – http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add –

[email protected]:~$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
OK
[email protected]:~$

Krok 3: Po dodaniu klucza, dołącz adres repozytoriów pakietów Debiana:

sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins .list’

Krok 4: Zaktualizuj pakiety w systemie Ubuntu:

aktualizacja sudo apt

[email protected]:~$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Ign:3 http://pkg.jenkins-ci.org/debian-stable binary/ InRelease
Get:4 http://pkg.jenkins-ci.org/debian-stable binary/ Release [2044 B]
Get:5 http://pkg.jenkins-ci.org/debian-stable binary/ Release.gpg [195 B]
Get:6 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:7 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8570 kB]
Get:8 http://pkg.jenkins-ci.org/debian-stable binary/ Packages [17.6 kB]
Get:9 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Get:10 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [748 kB]
Get:11 http://security.ubuntu.com/ubuntu bionic-security/main Translation-en [237 kB]
Get:12 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [50.8 kB]
Get:13 http://security.ubuntu.com/ubuntu bionic-security/restricted Translation-en [12.3 kB]
Get:14 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [673 kB]
Get:15 http://security.ubuntu.com/ubuntu bionic-security/universe Translation-en [223 kB]
Get:16 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [7808 B]
Get:17 http://security.ubuntu.com/ubuntu bionic-security/multiverse Translation-en [2856 B]
Get:18 http://archive.ubuntu.com/ubuntu bionic/universe Translation-en [4941 kB]
Get:19 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [151 kB]
Get:20 http://archive.ubuntu.com/ubuntu bionic/multiverse Translation-en [108 kB]
Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [969 kB]
Get:22 http://archive.ubuntu.com/ubuntu bionic-updates/main Translation-en [329 kB]
Get:23 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [60.5 kB]
Get:24 http://archive.ubuntu.com/ubuntu bionic-updates/restricted Translation-en [14.7 kB]
Get:25 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1085 kB]
Get:26 http://archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [337 kB]
Get:27 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [15.9 kB]
Get:28 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Translation-en [6420 B]
Get:29 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [7516 B]
Get:30 http://archive.ubuntu.com/ubuntu bionic-backports/main Translation-en [4764 B]
Get:31 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [7484 B]
Get:32 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [4436 B]
Fetched 18.8 MB in 58s (327 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
102 packages can be upgraded. Run 'apt list --upgradable' to see them.
[email protected]:~$

Krok 5: Zainstaluj Jenkinsa:

sudo apt install jenkins

[email protected]:~$ sudo apt install jenkins
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  daemon
The following NEW packages will be installed:
  daemon jenkins
0 upgraded, 2 newly installed, 0 to remove and 102 not upgraded.
Need to get 65.7 MB of archives.
After this operation, 66.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 daemon amd64 0.6.4-1build1 [99.5 kB]
Get:2 http://pkg.jenkins-ci.org/debian-stable binary/ jenkins 2.235.1 [65.6 MB]
Fetched 65.7 MB in 3min 34s (307 kB/s)
Selecting previously unselected package daemon.
(Reading database ... 29242 files and directories currently installed.)
Preparing to unpack .../daemon_0.6.4-1build1_amd64.deb ...
Unpacking daemon (0.6.4-1build1) ...
Selecting previously unselected package jenkins.
Preparing to unpack .../jenkins_2.235.1_all.deb ...
Unpacking jenkins (2.235.1) ...
Setting up daemon (0.6.4-1build1) ...
Setting up jenkins (2.235.1) ...
invoke-rc.d: could not determine current runlevel
Processing triggers for systemd (237-3ubuntu10.39) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for ureadahead (0.100.0-21) ...
[email protected]:~$

Jenkins został zainstalowany. Uruchom serwer Jenkins:

Krok 6: Uruchom Jenkinsa za pomocą polecenia systemctl:

sudo systemctl start jenkins

Ponieważ `systemctl` nie wyświetla żadnych danych, możesz sprawdzić status serwera za pomocą:

sudo systemctl status jenkins

[email protected]:~$ sudo systemctl status jenkins
● jenkins.service - LSB: Start Jenkins at boot time
   Loaded: loaded (/etc/init.d/jenkins; generated)
   Active: active (exited) since Sat 2020-04-04 10:10:19 UTC; 2 months 16 days ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 0 (limit: 4915)
   CGroup: /system.slice/jenkins.service

Apr 04 10:10:18 ip-172-31-17-25 systemd[1]: Starting LSB: Start Jenkins at boot time...
Apr 04 10:10:18 ip-172-31-17-25 jenkins[1984]: Correct java version found
Apr 04 10:10:18 ip-172-31-17-25 jenkins[1984]:  * Starting Jenkins Automation Server jenkins
Apr 04 10:10:18 ip-172-31-17-25 su[2037]: Successful su for root by root
Apr 04 10:10:18 ip-172-31-17-25 su[2037]: + ??? root:root
Apr 04 10:10:18 ip-172-31-17-25 su[2037]: pam_unix(su:session): session opened for user root by (uid=0)
Apr 04 10:10:18 ip-172-31-17-25 jenkins[1984]: mesg: ttyname failed: Inappropriate ioctl for device
Apr 04 10:10:18 ip-172-31-17-25 su[2037]: pam_unix(su:session): session closed for user root
Apr 04 10:10:19 ip-172-31-17-25 jenkins[1984]:    ...done.
Apr 04 10:10:19 ip-172-31-17-25 systemd[1]: Started LSB: Start Jenkins at boot time.
[email protected]:~$

Krok 7: Skonfiguruj port (opcjonalnie):

Jenkins domyślnie działa na porcie 8080, więc należy go udostępnić, jeśli nie jest dostępny.

Otwórz port za pomocą:

sudo ufw zezwalaj na 8080

Status portu można sprawdzić za pomocą:

status sudo ufw

[email protected]:~$ sudo ufw status 
Status: active 
To           Action           From
--           ------           ---- 
8080         ALLOW            Anywhere 
8080 (v6)    ALLOW            Anywhere (v6) 
[email protected]:~$

Jeśli zapora jest nieaktywna, najpierw uruchom:

sudo ufw zezwalaj na OpenSSH

a następnie:

włącz sudo ufw

Instalacja Jenkinsa na CentOS

Upewnij się, że masz zainstalowane JDK 8 lub nowsze. Jeśli nie, wykonaj poniższe polecenie, aby zainstalować pakiet OpenJDK 8:

sudo yum install java-1.8.0-openjdk-devel
[[email protected] ~]$ sudo yum install java-1.8.0-openjdk-devel
CentOS-8 - AppStream                            1.0 kB/s | 4.3 kB     00:04    
CentOS-8 - AppStream                            397 kB/s | 5.8 MB     00:14    
CentOS-8 - Base                                 3.5 kB/s | 3.9 kB     00:01    
CentOS-8 - Extras                               547  B/s | 1.5 kB     00:02    
Jenkins-stable                                  6.5 kB/s | 2.9 kB     00:00    
Dependencies resolved.
================================================================================
 Package                   Arch    Version                     Repository  Size
================================================================================
Installing:
 java-1.8.0-openjdk-devel  x86_64  1:1.8.0.252.b09-3.el8_2     AppStream  9.8 M

Transaction Summary
================================================================================
Install  1 Package

Total download size: 9.8 M
Installed size: 41 M
Is this ok [y/N]: y
Downloading Packages:
java-1.8.0-openjdk-devel-1.8.0.252.b09-3.el8_2. 531 kB/s | 9.8 MB     00:18    
--------------------------------------------------------------------------------
Total                                           507 kB/s | 9.8 MB     00:19     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : java-1.8.0-openjdk-devel-1:1.8.0.252.b09-3.el8_2.x86   1/1 
  Running scriptlet: java-1.8.0-openjdk-devel-1:1.8.0.252.b09-3.el8_2.x86   1/1 
  Verifying        : java-1.8.0-openjdk-devel-1:1.8.0.252.b09-3.el8_2.x86   1/1 
Installed products updated.

Installed:
  java-1.8.0-openjdk-devel-1:1.8.0.252.b09-3.el8_2.x86_64                       

Complete!
[[email protected] ~]$

Aby potwierdzić, że Java została zainstalowana, użyj polecenia:

java -version
[[email protected] ~]$ java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
[[email protected] ~]$

Po zainstalowaniu Javy, przejdź do instalacji Jenkinsa.

Kroki instalacji:

Krok 1: Uruchom terminal.

Krok 2: Pobierz i dodaj klucz GPG Jenkins:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
[[email protected] ~]$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
--2020-06-21 04:29:52--  http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
Resolving pkg.jenkins-ci.org (pkg.jenkins-ci.org)... 52.202.51.185, 64:ff9b::34ca:33b9
Connecting to pkg.jenkins-ci.org (pkg.jenkins-ci.org)|52.202.51.185|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 85
Saving to: ‘/etc/yum.repos.d/jenkins.repo’

/etc/yum.repos.d/je 100%[==================>]      85  --.-KB/s    in 0s      

2020-06-21 04:29:54 (2.61 MB/s) - ‘/etc/yum.repos.d/jenkins.repo’ saved [85/85]

[[email protected] ~]$

Krok 3: Zaimportuj klucz GPG Jenkins:

sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

Krok 4: Zaktualizuj pakiety CentOS:

sudo yum update
[[email protected] ~]$ sudo yum update
Last metadata expiration check: 0:17:09 ago on Sun 21 Jun 2020 04:21:20 AM PDT.
Dependencies resolved.
Nothing to do.
Complete!
[[email protected] ~]$

Krok 5: Zainstaluj Jenkinsa:

sudo yum install jenkins
[[email protected] ~]$ sudo yum install jenkins
Last metadata expiration check: 0:19:26 ago on Sun 21 Jun 2020 04:21:20 AM PDT.
Dependencies resolved.
===============================================================================
 Package          Architecture    Version               Repository        Size
===============================================================================
Installing:
 jenkins          noarch          2.235.1-1.1           jenkins           63 M

Transaction Summary
===============================================================================
Install  1 Package

Total download size: 63 M
Installed size: 63 M
Is this ok [y/N]: y
Downloading Packages:
jenkins-2.235.1-1.1.noarch.rpm                 172 kB/s |  63 MB     06:16    
-------------------------------------------------------------------------------
Total                                          172 kB/s |  63 MB     06:16     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                       1/1 
  Running scriptlet: jenkins-2.235.1-1.1.noarch                            1/1 
  Installing       : jenkins-2.235.1-1.1.noarch                            1/1 
  Running scriptlet: jenkins-2.235.1-1.1.noarch                            1/1 
  Verifying        : jenkins-2.235.1-1.1.noarch                            1/1 
Installed products updated.

Installed:
  jenkins-2.235.1-1.1.noarch                                                   

Complete!
[[email protected] ~]$

Krok 6: Uruchom Jenkinsa za pomocą systemctl:

sudo systemctl start jenkins

Sprawdź status serwera Jenkins:

sudo systemctl status jenkins
[[email protected] ~]$ sudo systemctl status jenkins
[sudo] password for newsblog.pl: 
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; generated)
   Active: active (running)
     Docs: man:systemd-sysv-generator(8)

Jun 20 11:15:22 localhost.localdomain systemd[1]: Starting LSB: Jenkins Automa>
Jun 20 11:15:23 localhost.localdomain runuser[1456]: pam_unix(runuser:session)>
Jun 20 11:15:33 localhost.localdomain jenkins[1433]: Starting Jenkins [  OK  ]
Jun 20 11:15:33 localhost.localdomain systemd[1]: Started LSB: Jenkins Automat>
Jun 21 04:23:04 localhost.localdomain systemd[1]: Stopping LSB: Jenkins Automa>
[[email protected] ~]$

Krok 7: Skonfiguruj port (opcjonalnie):

Jenkins domyślnie działa na porcie 8080, więc musisz go udostępnić, jeśli nie jest dostępny. Otwórz port:

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
[[email protected] ~]$ sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
success
[[email protected] ~]$

Przeładuj ustawienia zapory:

sudo firewall-cmd --reload
[[email protected] ~]$ sudo firewall-cmd --reload
success
[[email protected] ~]$

Konfiguracja Jenkinsa

Po zakończeniu instalacji Jenkins będzie dostępny pod adresem http://localhost:8080. Otwórz go w swojej przeglądarce.

Krok 1: Otwórz http://localhost:8080.

Krok 2: Skopiuj hasło administratora z pliku znajdującego się w lokalizacji:

C:Program Files (x86)JenkinssecretsinitialAdminPassword (dla Windows)

/var/lib/jenkins/secrets/initialAdminPassword (dla Linux)

Wklej je do pola Hasło administratora i kliknij Kontynuuj.

Krok 3: Możesz zainstalować sugerowane wtyczki lub wybrać te, które są Ci potrzebne. W tym przykładzie zainstalujemy sugerowane wtyczki.

Krok 4: Poczekaj, aż wszystkie wtyczki zostaną zainstalowane, a następnie kliknij „Kontynuuj”.

Krok 5: Utwórz profil administratora dla Jenkinsa. Wypełnij wymagane pola i kliknij „Zapisz i kontynuuj”.

Krok 6: Jeśli chcesz, zmień adres URL Jenkinsa. Pozostawmy domyślny adres http://localhost:8080. Kliknij „Zapisz i zakończ”, a następnie „Zacznij korzystać z Jenkins”.

Konfiguracja została zakończona i zobaczysz domyślną stronę powitalną Jenkinsa.

Proces konfiguracji Jenkinsa jest podobny dla wszystkich systemów operacyjnych. Jedyną różnicą jest krok 2, gdzie trzeba pobrać i wprowadzić hasło administratora, które znajduje się w pliku, którego lokalizacja zależy od systemu.

Podsumowanie

Powyżej przedstawiono kroki, które należy wykonać, aby zainstalować Jenkinsa w wybranym systemie operacyjnym. Następnym krokiem jest poznanie procesu tworzenia pierwszych potoków Jenkinsa.

Instalacja Jenkinsa jest prosta. Jeśli konfigurujesz środowisko dla zespołu zdalnego, możesz samodzielnie zainstalować Jenkinsa na maszynie wirtualnej w chmurze, lub wybrać platformę hostingową Jenkins.