一、概述
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進行更深次的學習吧。
-----------------------------------------------------------書山有路勤為徑,學海無涯苦作舟-------------------------------------------------------------