Jenkins 安裝與部署詳細教程


一、概述

Jenkins 的前身是 Hudson 是一個可擴展的持續集成引擎。Jenkins 是一款開源 CI&CD 軟件,用於自動化各種任務,包括構建、測試和部署軟件。Jenkins 支持各種運行方式,可通過系統包、Docker 或者通過一個獨立的 Java 程序。

二、Jenkins安裝前環境准備

1、操作系統CentOS7.X,並進行Java環境的安裝,建議安裝1.8版本以及更高版本。如果系統沒有自帶git,同時安裝Git。

1)安裝Java1.8版本,下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html  可以先下載好后,上傳至Linux服務器。

[root@localhost data]# ls
jdk-8u181-linux-x64.tar.gz
[root@localhost data]# tar -zxvf jdk-8u181-linux-x64.tar.gz
[root@localhost data]# ls
jdk1.8.0_181  jdk-8u181-linux-x64.tar.gz
[root@localhost data]# vim /etc/profile 
....................................
export JAVA_HOME=/data/jdk1.8.0_181/
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
....................................       
[root@localhost data]# source /etc/profile     //使環境變量生效。
[root@localhost data]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

2)安裝Git插件

[root@localhost data]# yum install git
已加載插件:fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                     | 3.6 kB     00:00
extras                                                   | 2.9 kB     00:00
updates                                                  | 2.9 kB     00:00
(1/2): extras/7/x86_64/primary_db                          | 165 kB   00:00
(2/2): updates/7/x86_64/primary_db                         | 7.6 MB   00:01
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 git.x86_64.0.1.8.3.1-20.el7 將被 升級
--> 正在處理依賴關系 git = 1.8.3.1-20.el7,它被軟件包 perl-Git-1.8.3.1-20.el7.noarch 需要
---> 軟件包 git.x86_64.0.1.8.3.1-21.el7_7 將被 更新
--> 正在檢查事務
---> 軟件包 perl-Git.noarch.0.1.8.3.1-20.el7 將被 升級
---> 軟件包 perl-Git.noarch.0.1.8.3.1-21.el7_7 將被 更新
--> 解決依賴關系完成

依賴關系解決

================================================================================  

三、Jenkins安裝

1、第一種安裝方法

[root@localhost data]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
--2020-04-21 09:01:53--  https://pkg.jenkins.io/redhat-stable/jenkins.repo
正在解析主機 pkg.jenkins.io (pkg.jenkins.io)... 52.202.51.185
正在連接 pkg.jenkins.io (pkg.jenkins.io)|52.202.51.185|:443... 已連接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:85
正在保存至: “/etc/yum.repos.d/jenkins.repo”

100%[=========================================================================>] 85          --.-K/s 用時 0s

2020-04-21 09:01:54 (19.3 MB/s) - 已保存 “/etc/yum.repos.d/jenkins.repo” [85/85])

[root@localhost data]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@localhost data]# yum install jenkins
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
jenkins                                                                                     | 2.9 kB  00:00:00
jenkins/primary_db                                                                          |  32 kB  00:00:01
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 jenkins.noarch.0.2.222.1-1.1 將被 安裝
--> 解決依賴關系完成

依賴關系解決

===================================================================================================================
 Package                   架構                     版本                           源                         大小
===================================================================================================================
正在安裝:
 jenkins                   noarch                   2.222.1-1.1                    jenkins                    63 M

事務概要
===================================================================================================================
安裝  1 軟件包

總下載量:63 M
安裝大小:63 M
Is this ok [y/d/N]: y
Downloading packages:
^Cnkins-2.222.1-1.1.noarch.rpm              7% [==                               ]  21 kB/s | 4.7 MB  00:48:13 ETA

2、第二種安裝方法。在Jenkins網站將穩定版本的RPM包下載后,上傳至Linux服務器。  

[root@localhost data]# rpm -ivh jenkins-2.222.1-1.1.noarch.rpm
准備中...                          ################################# [100%]
正在升級/安裝...
   1:jenkins-2.222.1-1.1              ################################# [100%]  

1)注意:上述兩種方法安裝Jenkins后,需要配置環境變量,否則在啟動時會出現報錯。

[root@localhost data]# vim /etc/sysconfig/jenkins
...................
JENKINS_PORT="8080"        //修改監聽端口8080

JENKINS_USER="root"        //為了不因為權限出現各種問題,這里面直接修改Jenkins為root權限 並修改文件權限。
....................
[root@localhost data]# chown -R root:root /var/lib/jenkins/
[root@localhost data]# chown -R root:root /var/cache/jenkins/
[root@localhost data]# chown -R root:root /var/log/jenkins/  

2)現在啟動Jenkins會出現報錯信息:

[root@localhost data]# service jenkins restart
Restarting jenkins (via systemctl):  Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
                                                           [FAILED]
    pathmunge /usr/sbin after

[root@localhost data]# systemctl status jenkins.service
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since 二 2020-04-21 09:13:09 CST; 10s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 3096 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)

4月 21 09:13:09 localhost.localdomain systemd[1]: Starting LSB: Jenkins Automation Server...
4月 21 09:13:09 localhost.localdomain runuser[3101]: pam_unix(runuser:session): session opened for user roo...d=0)
4月 21 09:13:09 localhost.localdomain jenkins[3096]: Starting Jenkins bash: /usr/bin/java: No such file or ...tory
4月 21 09:13:09 localhost.localdomain runuser[3101]: pam_unix(runuser:session): session closed for user root
4月 21 09:13:09 localhost.localdomain jenkins[3096]: [FAILED]
4月 21 09:13:09 localhost.localdomain systemd[1]: jenkins.service: control process exited, code=exited status=1
4月 21 09:13:09 localhost.localdomain systemd[1]: Failed to start LSB: Jenkins Automation Server.
4月 21 09:13:09 localhost.localdomain systemd[1]: Unit jenkins.service entered failed state.
4月 21 09:13:09 localhost.localdomain systemd[1]: jenkins.service failed.
test -e "$JENKINS_CONFIG" || { echo "$JENKINS_CONFIG not existing";
Hint: Some lines were ellipsized, use -l to show in full.  

3)問題主要原因是Starting Jenkins bash: /usr/bin/java: No such file or ...tory,Java環境變量。

[root@localhost data]# which java
/data/jdk1.8.0_181/bin/java
[root@localhost data]# vim /etc/init.d/jenkins
.................................
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
/data/jdk2.8.0_181/bin/java      //將Java路徑添加此處
".....................................
[root@localhost data]# source /etc/profile
[root@localhost data]# source /etc/profile
[root@localhost data]# systemctl restart jenkins.service
Warning: jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units.
[root@localhost data]# systemctl status jenkins.service
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
   Active: active (running) since 二 2020-04-21 09:19:33 CST; 4s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 3479 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/jenkins.service
           └─3503 /data/jdk1.8.0_181/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKI...

4月 21 09:19:32 localhost.localdomain systemd[1]: Starting LSB: Jenkins Automation Server...
4月 21 09:19:33 localhost.localdomain runuser[3484]: pam_unix(runuser:session): session opened for user roo...d=0)
4月 21 09:19:33 localhost.localdomain runuser[3484]: pam_unix(runuser:session): session closed for user root
4月 21 09:19:33 localhost.localdomain jenkins[3479]: Starting Jenkins [  OK  ]
4月 21 09:19:33 localhost.localdomain systemd[1]: Started LSB: Jenkins Automation Server.
Warning: jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Hint: Some lines were ellipsized, use -l to show in full.  

4)安裝完成后,設置開機自動啟動,需要知悉Jenkins相關默認路徑

[root@localhost ~]# ll /usr/lib/jenkins/      //Jenkins war包
總用量 64736
-rw-r--r-- 1 root root 66288019 3月  25 22:13 jenkins.war
[root@localhost ~]# vim /etc/sysconfig/jenkins       //配置文件:端口、權限 Jenkins HOME路徑等
[root@localhost ~]# ls /var/lib/jenkins/             //Jenkins HOME路徑
com.cloudbees.hudson.plugins.folder.config.AbstractFolderConfiguration.xml  logs
config.xml                                                                  nodeMonitors.xml
hudson.model.UpdateCenter.xml                                               nodes
hudson.plugins.git.GitTool.xml                                              plugins
identity.key.enc                                                            queue.xml.bak
jenkins.install.InstallUtil.lastExecVersion                                 secret.key
jenkins.install.UpgradeWizard.state                                         secret.key.not-so-secret
jenkins.model.JenkinsLocationConfiguration.xml                              secrets
jenkins.security.apitoken.ApiTokenPropertyConfiguration.xml                 updates
jenkins.security.QueueItemAuthenticatorConfiguration.xml                    userContent
jenkins.security.UpdateSiteWarningsConfiguration.xml                        users
jenkins.telemetry.Correlator.xml                                            workflow-libs
jobs
[root@localhost ~]# ll /var/log/jenkins/jenkins.log      //Jenkins日志文件
-rw-r--r-- 1 root root 56355 4月  21 13:53 /var/log/jenkins/jenkins.log

3、第三種安裝方法

第三種安裝方法是安裝Tomcat,下載Jenkins war包,放入Tomcat內進行啟動加載。本次不進行安裝測試了。  

四、Jenkins基本配置

1、本地使用http://IP:8080 訪問Jenkins,會進入初始部署,選擇推薦的插件安裝。

執行下述命令查看初始密碼。

[root@localhost lib]# cat /var/lib/jenkins/secrets/initialAdminPassword
cedc48233e8e4a958b77f11c59c42d65  

2、安裝推薦插件

 

 

登錄Jenkins進行更深次的學習吧。

 -----------------------------------------------------------書山有路勤為徑,學海無涯苦作舟------------------------------------------------------------- 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM