Installer Jenkins: Trinnvis guide for Windows, Ubuntu & CentOS

En detaljert veiledning for installasjon av Jenkins.

I denne artikkelen skal vi se på hvordan du installerer Jenkins på flere operativsystemer.

Installasjonsprosessen for Jenkins kan variere litt mellom de ulike operativsystemene, men selve konfigurasjonen er den samme uavhengig av operativsystemet.

Hva er Jenkins?

Jenkins er et åpen kildekode automatiseringsverktøy som er utviklet for å hjelpe utviklere med å håndtere prosjekter og applikasjoner. Det er mye brukt for å bygge og distribuere programvare. Jenkins er en kraftig applikasjon for automatisering som muliggjør kontinuerlig integrasjon og levering av prosjekter, uavhengig av plattformen du jobber med.

Jenkins er en Java-basert applikasjon og kjører uavhengig på alle maskiner der Java Runtime Environment (JRE) er installert.

Hvis du er interessert i å lære mer om Jenkins, kan du utforske dette online kurset for å bli en ekspert fra bunnen av.

Forutsetninger

For alle operativsystemer kreves JDK8 eller nyere. Først må du installere JDK8 eller en høyere versjon. Du kan laste ned og installere den herfra.

Jenkins installasjon på Windows

Etter at JDK er installert, kan vi laste ned og installere Jenkins. Klikk her for å laste ned den nyeste MSI-pakken for Jenkins for Windows.

  • Dobbeltklikk på jenkins.msi for å starte installasjonsprosessen.
  • Trykk på «Neste» for å fortsette installasjonen.

  • Klikk på «Endre» om du vil installere Jenkins i en annen mappe. I dette eksemplet beholder vi standardmappen. Klikk deretter «Neste».

  • Når installasjonen er ferdig, klikk på «Fullfør».

Som du ser er Jenkins installasjon på Windows ganske enkelt, i likhet med installasjon av annen standard programvare.

Jenkins installasjon på Ubuntu

Før du starter installasjonen, må du forsikre deg om at JDK8 eller nyere er installert og kjører på Ubuntu-maskinen din. Hvis ikke, kjør kommandoen under for å installere den:

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

For å verifisere at Java er installert korrekt, kjør kommandoen:

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

Nå som JDK er installert er vi klare for å installere Jenkins.

Installasjonstrinn:

Trinn 1: Start kommandoterminalen (Ctrl + Alt + T)

Trinn 2: For å installere Jenkins, legg til depotnøkkelen i systemet:

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

Trinn 3: Etter at nøkkelen er lagt til, må vi legge til adressen til Debian-pakken i maskinen:

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

Trinn 4: Oppdater Ubuntu-pakker:

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

Trinn 5: For å installere Jenkins, kjør følgende kommando:

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 er nå installert, og vi kan starte serveren.

Trinn 6: Start Jenkins med systemctl:

sudo systemctl start jenkins

Siden systemctl ikke viser noe output, kan vi sjekke statusen med kommandoen under. Med denne kommandoen kan vi se om Jenkins er aktiv eller ikke:

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

Trinn 7: Konfigurer port (valgfritt)

Jenkins kjører som standard på port 8080, og vi må sørge for at porten er tilgjengelig fra utsiden (hvis den ikke allerede er det).

La oss åpne porten:

sudo ufw allow 8080

Vi kan sjekke portens status med følgende kommando:

sudo ufw status

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

Hvis statusen viser at brannmuren er inaktiv, kjør kommandoen under. Ellers trenger du ikke gjøre noe:

sudo ufw allow OpenSSH

etterfulgt av:

sudo ufw enable

Jenkins installasjon på CentOS

Sørg først for at JDK8 eller nyere er installert på maskinen. Hvis den ikke er installert, kjør kommandoen under for å installere OpenJDK 8-pakken.

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

For å verifisere at Java er installert, kjør kommandoen under:

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

Nå som JDK er installert, kan vi fortsette med Jenkins-installasjonen.

Installasjonstrinn

Trinn 1: Åpne kommandoterminalen

Trinn 2: For å installere Jenkins, må vi først laste ned og legge til Jenkins GPG-nøkkel:

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

Trinn 3: Etter å ha lastet ned og lagt til Jenkins GPG-nøkkel, må vi importere Jenkins GPG-nøkkel:

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

Trinn 4: Oppdater CentOS-pakker:

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

Trinn 5: Etter oppdatering av CentOS-pakker, er vi klare til å installere Jenkins:

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

Trinn 6: Start Jenkins med systemctl:

sudo systemctl start jenkins

Siden systemctl ikke viser noen output, kan du sjekke statusen med kommandoen under. Med denne kommandoen kan du se om Jenkins er aktiv eller ikke.

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

Trinn 7: Konfigurer porten (valgfritt)

Jenkins kjører som standard på port 8080, og vi må sørge for at porten er tilgjengelig fra utsiden (hvis den ikke allerede er det). La oss åpne porten:

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

Etter å ha konfigurert porten, må brannmuren lastes inn på nytt:

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

Konfigurering av Jenkins

Etter at Jenkins er installert, kjører den på port 8080. La oss konfigurere den ved å gå til http://localhost:8080 i nettleseren.

Trinn 1: Åpne http://localhost:8080

Trinn 2: For å låse opp Jenkins, kopier administratorpassordet fra filen som er lokalisert på:

C:Program Files (x86)JenkinssecretsinitialAdminPassword

/var/lib/jenkins/secrets/initialAdminPassword

Lim passordet inn i feltet Administratorpassord. Klikk deretter på Fortsett.

Trinn 3: Du kan enten installere de foreslåtte pluginene, eller du kan velge pluginene manuelt basert på ditt brukstilfelle. Her vil vi installere de foreslåtte pluginene.

Trinn 4: Vent til alle pluginene er installert. Når installasjonen er ferdig, trykk på «Fortsett».

Trinn 5: Opprett en administratorprofil for Jenkins. Legg inn den nødvendige informasjonen og trykk «Lagre og fortsett».

Trinn 6: Vi kan endre Jenkins URL om nødvendig. Vi beholder standardinnstillingen http://localhost:8080. Trykk «Lagre og fullfør» for å fullføre konfigurasjonen. Klikk deretter «Start Using Jenkins».

Konfigurasjonen er nå fullført, og du vil se den standard Velkommen til Jenkins-siden.

Konfigurasjonstrinnene for Jenkins er like for alle operativsystemer, med unntak av trinn 2 hvor vi henter og limer inn administratorpassordet. Passordet finnes i filen som er lokalisert i banen som er angitt i «Unlock Jenkins» brukergrensesnitt.

Konklusjon

Ovenfor har vi sett stegene for å installere Jenkins på de forskjellige operativsystemene. Etter installasjonen kan du lære å opprette dine første Jenkins Pipelines.

Jenkins installasjon er ganske enkel, og om du skal sette opp dette for et team som jobber eksternt, kan du enten bruke en Cloud VM og installere det selv eller bruke en Jenkins-vertstjeneste.