作者:米菲茨杰拉德
介紹
本教程解釋了 Jenkins 及其用途。首先將其安裝在 Ubuntu 20.04 服務器上,然後啟動軟件,啟用和配置服務,最後創建具有管理員權限的用戶。
什麼是詹金斯?
Jenkins 是一個用 Java 編程語言編寫的開源程序。它旨在提供穩定且平衡的持續集成和持續部署 (CI/CD) 流程。
你為什麼需要它
讓我們試著理解為什麼我們需要這種類型的軟件。過去,當程序員編寫代碼來創建應用程序時,接下來的步驟是:
- 構建可在任何服務器上使用和傳輸的跨平台應用程序。
- 執行所需的性能測試和評估。
- 在您的服務器上傳輸、安裝和配置應用程序。
這些只是 Jenkins 解決的一些任務。這些步驟現在可以自動化,以穩定、加速和減少開發過程中的人為錯誤。這就是為什麼 Jenkins 是當今使用最廣泛的 CI/CD 解決方案之一。
優勢
Jenkins 以以下優點而聞名:
- 提高 CI/CD 流程的可靠性。
- 該軟件易於安裝、配置和使用。
- 擴展其功能的各種插件。
- 與其他 CI/CD 工具集成。
- 服務分發。開發人員可以跨多個服務器和平台構建、測試和部署應用程序。
- 作為一個免費和開源的應用程序。
先決條件
要在 Ubuntu 20.04 上安裝 Jenkins,需要滿足以下要求:
- 具有至少 2 GB RAM 和 2 個內核的服務器。
- 已安裝 Ubuntu 20.04 操作系統。
- 所有命令都以 root 用戶身份運行。作為普通用戶,您需要訪問和使用 sudo 命令。
安裝
首先,您應該始終更新 Ubuntu 和所有已安裝的應用程序。
[email protected]:~# apt update && apt upgrade -y
安裝 JDK
要安裝、配置和使用 Jenkins,您需要安裝 Java 開發工具包 (JDK)。 本教程使用 JDK 11 版本,因為 Jenkins 默認可以使用 JDK 8 和 11 版本。 首先安裝最新版本的 JDK 軟件。
首先,使用 version 命令檢查您的服務器上是否安裝了 JDK 軟件。
[email protected]:~# java -version
-bash: java: command not found
[email protected]:~#
現在你可以安裝JDK了。
[email protected]:~# apt install openjdk-11-jdk -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
at-spi2-core ca-certificates-java fontconfig-config fonts-dejavu-core fonts-dejavu-extra java-common libatk-bridge2.0-0
libatk-wrapper-java libatk-wrapper-java-jni libatk1.0-0 libatk1.0-data libatspi2.0-0 libavahi-client3 libavahi-common-data
libavahi-common3 libcups2 libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libfontconfig1 libfontenc1 libgif7
libgl1 libgl1-mesa-dri libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libice-dev libice6 libjpeg-turbo8 libjpeg8 liblcms2-2
libllvm10 libnspr4 libnss3 libpciaccess0 libpcsclite1 libpthread-stubs0-dev libsensors-config libsensors5 libsm-dev libsm6
libvulkan1 libwayland-client0 libx11-6 libx11-data libx11-dev libx11-xcb1 libxau-dev libxaw7 libxcb-dri2-0 libxcb-dri3-0
libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-shape0 libxcb-sync1 libxcb1 libxcb1-dev libxcomposite1 libxdamage1
libxdmcp-dev libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxkbfile1 libxmu6 libxmuu1 libxpm4 libxrandr2 libxrender1
libxshmfence1 libxt-dev libxt6 libxtst6 libxv1 libxxf86dga1 libxxf86vm1 mesa-vulkan-drivers openjdk-11-jdk-headless
openjdk-11-jre openjdk-11-jre-headless x11-common x11-utils x11proto-core-dev x11proto-dev xorg-sgml-doctools xtrans-dev
Suggested packages:
default-jre cups-common libice-doc liblcms2-utils pcscd lm-sensors libsm-doc libx11-doc libxcb-doc libxt-doc openjdk-11-demo
openjdk-11-source visualvm libnss-mdns fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei
fonts-indic mesa-utils
The following NEW packages will be installed:
at-spi2-core ca-certificates-java fontconfig-config fonts-dejavu-core fonts-dejavu-extra java-common libatk-bridge2.0-0
libatk-wrapper-java libatk-wrapper-java-jni libatk1.0-0 libatk1.0-data libatspi2.0-0 libavahi-client3 libavahi-common-data
libavahi-common3 libcups2 libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libfontconfig1 libfontenc1 libgif7
libgl1 libgl1-mesa-dri libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libice-dev libice6 libjpeg-turbo8 libjpeg8 liblcms2-2
libllvm10 libnspr4 libnss3 libpciaccess0 libpcsclite1 libpthread-stubs0-dev libsensors-config libsensors5 libsm-dev libsm6
libvulkan1 libwayland-client0 libx11-6 libx11-data libx11-dev libx11-xcb1 libxau-dev libxaw7 libxcb-dri2-0 libxcb-dri3-0
libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-shape0 libxcb-sync1 libxcb1 libxcb1-dev libxcomposite1 libxdamage1
libxdmcp-dev libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxkbfile1 libxmu6 libxmuu1 libxpm4 libxrandr2 libxrender1
libxshmfence1 libxt-dev libxt6 libxtst6 libxv1 libxxf86dga1 libxxf86vm1 mesa-vulkan-drivers openjdk-11-jdk
openjdk-11-jdk-headless openjdk-11-jre openjdk-11-jre-headless x11-common x11-utils x11proto-core-dev x11proto-dev
xorg-sgml-doctools xtrans-dev
0 upgraded, 93 newly installed, 0 to remove and 0 not upgraded.
Need to get 309 MB of archives.
After this operation, 815 MB of additional disk space will be used.
…
…
…
done.
done.
[email protected]:~#
檢查您的 Java 版本。
最後,使用以下命令檢查您的 Java 版本:
[email protected]:~# java -version
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-120.04, mixed mode)
[email protected]:~#
安裝詹金斯
接下來,安裝 Jenkins 本身。標準 Ubuntu 軟件包中包含的 Jenkins 版本與可用的最新版本不同。所以安裝 最新版本的 來自官方網站。
首先,添加一個 gpg 密鑰來驗證存儲庫中軟件的真實性。
[email protected]:~# wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | apt-key add -
OK
[email protected]:~#
在此之後,將存儲庫地址添加到 /etc/apt/sources.list.d 文件中。此列表包含有關在何處下載和更新應用程序的信息。
[email protected]:~# sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ >
e> /etc/apt/sources.list.d/jenkins.list'
[email protected]:~#
然後再次更新您的軟件包列表,以便 apt 軟件包管理器可以找到您的軟件的新存儲庫。
[email protected]:~# apt-get update
Hit:1 https://archive.ubuntu.com/ubuntu focal InRelease
Hit:2 https://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 https://archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:4 https://security.ubuntu.com/ubuntu focal-security InRelease
Ign:5 https://pkg.jenkins.io/debian-stable binary/ InRelease
Get:6 https://pkg.jenkins.io/debian-stable binary/ Release [2,044 B]
Get:7 https://pkg.jenkins.io/debian-stable binary/ Release.gpg [833 B]
Get:8 https://pkg.jenkins.io/debian-stable binary/ Packages [18.9 kB]
Fetched 21.8 kB in 1s (38.1 kB/s)
Reading package lists... Done
[email protected]:~#
現在您可以安裝 Jenkins。
[email protected]:~# apt install jenkins -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
daemon net-tools
The following NEW packages will be installed:
daemon jenkins net-tools
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 67.2 MB of archives.
After this operation, 68.5 MB of additional disk space will be used.
Get:1 https://archive.ubuntu.com/ubuntu focal/universe amd64 daemon amd64 0.6.4-1build2 [96.3 kB]
Get:2 https://archive.ubuntu.com/ubuntu focal/main amd64 net-tools amd64 1.60+git20180626.aebd88e-1ubuntu1 [196 kB]
Get:3 https://pkg.jenkins.io/debian-stable binary/ jenkins 2.263.1 [66.9 MB]
Fetched 67.2 MB in 9s (7,112 kB/s)
Selecting previously unselected package daemon.
(Reading database ... 50086 files and directories currently installed.)
Preparing to unpack .../daemon_0.6.4-1build2_amd64.deb ...
Unpacking daemon (0.6.4-1build2) ...
Selecting previously unselected package net-tools.
Preparing to unpack .../net-tools_1.60+git20180626.aebd88e-1ubuntu1_amd64.deb ...
Unpacking net-tools (1.60+git20180626.aebd88e-1ubuntu1) ...
Selecting previously unselected package jenkins.
Preparing to unpack .../jenkins_2.263.1_all.deb ...
Unpacking jenkins (2.263.1) ...
Setting up net-tools (1.60+git20180626.aebd88e-1ubuntu1) ...
Setting up daemon (0.6.4-1build2) ...
Setting up jenkins (2.263.1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for systemd (245.4-4ubuntu3.3) ...
[email protected]:~#
啟動服務並檢查
我安裝了詹金斯。然後使用 systemctl 系統命令啟動它。
[email protected]:~# systemctl start jenkins
[email protected]:~#
然後使用 systemctl status 命令確保一切正常啟動。
root@host:~# systemctlstatusjenkins
● jenkins.service -LSB: StartJenkinsatboottimeLoaded: loaded (/etc/init.d/jenkins; generated)
Active: active (exited) sinceSat2020-12-1919:13:43 UTC; 4min35sagoDocs: man:systemd-sysv-generator(8)
Tasks: 0 (limit: 4620)
Memory: 0BCGroup: /system.slice/jenkins.service
Dec1919:13:42 hostsystemd[1]: StartingLSB: StartJenkinsatboottime...
Dec1919:13:42 hostjenkins[54912]: CorrectjavaversionfoundDec1919:13:42 hostjenkins[54912]: * StartingJenkinsAutomationServerjenkinsDec1919:13:42 hostsu[54967]: (to jenkins) rootonnoneDec1919:13:42 hostsu[54967]: pam_unix(su-l:session): sessionopenedforuserjenkinsby (uid=0)
Dec1919:13:42 hostsu[54967]: pam_unix(su-l:session): sessionclosedforuserjenkinsDec1919:13:43 hostjenkins[54912]: ...done.
Dec1919:13:43 hostsystemd[1]: StartedLSB: StartJenkinsatboottime.
root@host:~#
您可以在此處查看狀態
Active: active (exited) since Sat 2020-12-19 19:13:43 UTC; 4min 35s ago
配置防火牆
現在軟件已經安裝並成功啟動,是時候配置服務器了。 當 Jenkins 運行時,您需要在防火牆中打開 8080 端口,以便您可以從瀏覽器訪問 Jenkins。首先,啟用 UFW 防火牆。
[email protected]:~# ufw enable
Firewall is active and enabled on system startup
[email protected]:~#
接下來,添加一條規則以在防火牆中打開和使用端口 8080。
[email protected]:~# ufw allow 8080
Rule added
Rule added (v6)
[email protected]:~#
現在讓我們檢查防火牆的狀態。
[email protected]:~# ufw status
Status: active
To Action From
-- ------ ----
8080 ALLOW Anywhere
OpenSSH ALLOW Anywhere
8080 (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
[email protected]:~#
詹金斯用戶設置
現在讓我們開始設置主要用戶。轉到您的瀏覽器並輸入 https://YOUR_IP_OR_DOMAIN:8080
YOUR_IP_OR_DOMAIN – 在此處列出您的域名或 IP 地址。 如果您不知道自己的 IP 地址,可以使用以下命令進行檢查:
[email protected]:~# ip a
在瀏覽器中輸入 URL,您應該會看到 Unlock Jenkins 屏幕。
您必須在此處輸入密碼。要檢索密碼,請在終端中運行以下命令以查找存儲在 initialAdminPassword 文件中的密碼。
[email protected]:~# cat /var/lib/jenkins/secrets/initialAdminPassword
9654*******d9549b******2195******18
[email protected]:~#
從命令輸出中復制您在終端中收到的密碼,然後在下面的管理員密碼窗口中輸入,[続行]點擊。

下一個屏幕顯示推薦安裝的插件,並為您提供選擇和安裝它們的選項。

在這種情況下,請安裝建議的插件。在此之後,將安裝推薦的插件。

安裝完成後會提示創建用戶。如果您願意,可以跳過此步驟並繼續以管理員身份工作。在這裡,我們將創建一個用戶。

在這些字段中輸入用戶詳細信息。

然後點擊 保存並繼續 按鈕.

[Get Started with Jenkins]單擊該按鈕將打開 Jenkins 儀表板。

結論是
本教程解釋了 Jenkins 是什麼以及如何設置先決條件和安裝它。然後設置防火牆規則,啟動Jenkins,最後進行配置。之後,我創建了一個管理員用戶並進入了 Jenkins 控制面板。展望未來,我會進一步鼓勵您分析並考慮將 Jenkins 用於您的 CI/CD 管道。
你願意參加嗎!
我們以成為 Hosting™ 最樂於助人的人而自豪!
我們的技術支持人員每天 24 小時、每週 7 天、每年 365 天為您解答有關本文的問題。
可以通過票務系統 [email protected]電話 (800-580-4986) 或 在線聊天 或者任何你喜歡的方式。我們努力讓您感到放鬆。