Како инсталирати Јенкинс на Виндовс, Убунту и ЦентОС?

Detaljan vodič za instalaciju Jenkinsa korak po korak.

U ovom članku istražićemo kako se Jenkins instalira na različitim operativnim sistemima.

Iako se pojedini koraci instalacije mogu razlikovati između operativnih sistema, konfiguracija Jenkinsa je uglavnom ista.

Šta je Jenkins?

Jenkins je alat otvorenog koda za automatizaciju procesa izgradnje, testiranja i isporuke softvera. Namenjen je prvenstveno programerima koji žele da automatizuju svoje razvojne procese. Jenkins omogućava kontinuiranu integraciju i kontinuiranu isporuku, bez obzira na platformu na kojoj radite.

S obzirom da je Jenkins Java aplikacija, može se pokretati na bilo kom sistemu koji ima instalirano Java Runtime Environment (JRE).

Ako želite da naučite više o Jenkinsu, pogledajte ovaj onlajn kurs i postanite ekspert.

Preduslov

JDK8 ili novija verzija je obavezna za sve operativne sisteme. Prema tome, najpre je potrebno instalirati JDK8 ili noviju verziju. Možete ga preuzeti i instalirati ovde.

Instalacija Jenkinsa na Windows-u

Kada je JDK instaliran i pokrenut, spremni smo za preuzimanje i instalaciju Jenkinsa. Kliknite ovde da preuzmete najnoviji Jenkins MSI paket za Windows.

  • Dvaput kliknite na *jenkins.msi* da biste pokrenuli instalaciju.
  • Kliknite na „Next“, a zatim na „Install“.

  • Kliknite na dugme „Change“ ako želite da instalirate Jenkins u drugi direktorijum. U ovom primeru, zadržaćemo podrazumevanu lokaciju i kliknuti na „Next“.

  • Kada se proces instalacije završi, kliknite na dugme „Finish“ kako biste dovršili instalaciju.

Kao što vidite, instalacija Jenkinsa na Windows-u je prilično jednostavna, kao i instalacija bilo kog standardnog softvera.

Instalacija Jenkinsa na Ubuntu

Kao što je ranije pomenuto, uverite se da je JDK8+ instaliran i da radi na vašoj Ubuntu mašini. Ako nije instaliran, pokrenite sledeću komandu da biste ga instalirali:

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]:~$

Da biste potvrdili da je Java uspešno instalirana, pokrenite sledeću komandu:

java -version

[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]:~$

Kada je Java instalirana, možemo da pređemo na instalaciju Jenkinsa.

Koraci instalacije:

Korak 1: Otvorite terminal (Ctrl + Alt + T)

Korak 2: Da biste instalirali Jenkins, dodajte ključ repozitorijuma u sistem:

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]:~$

Korak 3: Nakon dodavanja ključa, potrebno je dodati adresu Debian repozitorijuma na sistem:

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

Korak 4: Ažurirajte Ubuntu pakete:

sudo apt update

[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]:~$

Korak 5: Konačno, da biste instalirali Jenkins, pokrenite sledeću komandu:

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 je uspešno instaliran. Sada možemo pokrenuti Jenkins server.

Korak 6: Pokretanje Jenkinsa pomoću systemctl komande:

sudo systemctl start jenkins

Pošto systemctl ne prikazuje izlaz, status možemo proveriti sledećom komandom. Pomoću ove komande možemo proveriti da li je Jenkins aktivan ili ne.

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]:~$

Korak 6: Konfigurisanje porta (opcionalno)

Po podrazumevanom, Jenkins se pokreće na portu 8080, i potrebno je osigurati da je ovaj port dostupan sa bilo kog mesta (ako nije već dostupan). Otvorimo port:

sudo ufw allow 8080

Status porta možemo proveriti sledećom komandom:

sudo ufw status

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

Ako je status firewall-a neaktivan, pokrenite sledeću komandu, inače nije potrebna:

sudo ufw allow OpenSSH

zatim:

sudo ufw enable

Instalacija Jenkinsa na CentOS-u

Prvo, uverite se da je JDK8+ instaliran i da radi na vašoj CentOS mašini. Ako nije instaliran, pokrenite sledeću komandu da biste instalirali OpenJDK 8 paket.

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] ~]$

Da biste potvrdili da je Java uspešno instalirana, pokrenite sledeću komandu:

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] ~]$

Kada je Java instalirana, možemo preći na instalaciju Jenkinsa.

Koraci instalacije

Korak 1: Otvorite terminal

Korak 2: Da biste instalirali Jenkins, najpre je potrebno preuzeti i dodati Jenkins GPG ključ:

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] ~]$

Korak 3: Nakon preuzimanja i dodavanja Jenkins GPG ključa, uvezite ga:

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

Korak 4: Ažurirajte CentOS pakete:

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] ~]$

Korak 5: Nakon ažuriranja paketa, spremni smo za instalaciju 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] ~]$

Korak 6: Pokretanje Jenkinsa pomoću systemctl:

sudo systemctl start jenkins

Pošto systemctl ne prikazuje izlaz, možete proveriti status pomoću sledeće komande. Preko ove komande možete proveriti da li je Jenkins aktivan ili ne.

sudo systemctl status jenkins
[[email protected] ~]$ sudo systemctl status jenkins
[sudo] password for techblog.co.rs: 
● 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] ~]$

Korak 7: Konfigurisanje porta (opcionalno)

Po podrazumevanom, Jenkins se pokreće na portu 8080 i potrebno je da ovaj port bude dostupan sa bilo kog mesta (ako već nije dostupan). Otvorimo 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] ~]$

Nakon konfigurisanja porta, ponovo učitajte firewall:

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

Konfigurisanje Jenkinsa

Kada se Jenkins instalira, radiće na portu 8080. Konfigurišimo ga tako što ćemo otići na http://localhost:8080 u omiljenom pretraživaču.

Korak 1: Posetite http://localhost:8080

Korak 2: Da biste otključali Jenkins, kopirajte administratorsku lozinku iz datoteke koja se nalazi na:

C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword

/var/lib/jenkins/secrets/initialAdminPassword

Sada, zalepite je u polje **Administrator password**. Zatim, kliknite na dugme **Continue**.

Korak 3: Možete instalirati predložene dodatke ili odabrati dodatke u zavisnosti od vaših potreba. U ovom slučaju ćemo instalirati predložene dodatke.

Korak 4: Sačekajte dok se svi dodaci ne instaliraju. Kada se instalacija završi, kliknite na Continue.

Korak 5: Kreirajte administratorski profil za Jenkins. Unesite potrebne podatke i kliknite na Save and Continue.

Korak 6: Možete promeniti Jenkins URL ako je potrebno. Neka bude podrazumevani http://localhost:8080. Kliknite na Save and Finish da biste dovršili proces konfiguracije. Sada kliknite na Start using Jenkins.

Konačno, proces konfiguracije je završen i ovo je podrazumevana „Dobrodošli u Jenkins!“ strana.

Koraci konfiguracije Jenkinsa su slični za sve operativne sisteme, osim koraka 2, gde moramo da preuzmemo i unesemo administratorsku lozinku. Ova lozinka se može preuzeti iz datoteke čija je putanja prikazana u „Otključaj Jenkins korisnički interfejs“.

Zaključak

Ovo su koraci za instalaciju Jenkinsa na vašem omiljenom operativnom sistemu. Nakon instalacije, možete naučiti kako da kreirate svoje prve Jenkins „pipeline“-ove.

Instalacija Jenkinsa je jednostavna i ako ga postavljate za udaljeni tim, možete ili nabaviti neki Cloud VM i sami ga instalirati ili koristiti Jenkins hosting platformu.