Jenkins 的工作原理是先將源代碼從 SVN/Git 版本控制系統中拷貝一份到本地,然后根據設置的腳本進行 build(構建)。整個系統的關鍵就是 build 腳本,build 腳本告訴 Jenkins 在一次集成中需要執行的任務。
配置環境
操作系統 | IP地址 | 主機名 | 角色 |
CentOS7.5 | 192.168.200.112 | Jenkins | Jenkins服務器 |
安裝配置 Jenkins
[root@jenkins ~]# hostname jenkins
[root@jenkins ~]# systemctl stop firewalld
[root@jenkins ~]# iptables -F
[root@jenkins ~]# setenforce 0
軟件要求
Java 8 無論是 Java 運行時環境(JRE)還是 Java 開發工具包(JDK)都可以。
[root@jenkins ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
[root@jenkins ~]# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
Jenkins 安裝方式一:war 包
先安裝 tomcat 將 Jenkins.war 直接放到 webapps 目錄下
通過 Java-jar Jenkins.war --httpPort=8080 命令直接運行
官方倉庫 https://pkg.jenkins.io/redhat-stable/
清華大學開源軟件鏡像站 https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
下載相應的數據包即可,我這里使用的是 jenkins-2.190.3-1.1.noarch.rpm
Jenkins 安裝方式二:rpm 方式(推薦)
[root@jenkins ~]# rpm -ivh jenkins-2.190.3-1.1.noarch.rpm
啟動 Jenkins
[root@jenkins ~]# /etc/init.d/jenkins start
Starting jenkins (via systemctl): [ 確定 ]
[root@jenkins ~]# netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 967/sshd
tcp6 0 0 :::8080 :::* LISTEN 3069/java
tcp6 0 0 :::22 :::* LISTEN 967/sshd
tcp6 0 0 :::34616 :::* LISTEN 3069/java
RPM 包安裝的內容
[root@jenkins ~]# rpm -ql jenkins
/etc/init.d/jenkins # 啟動文件
/etc/logrotate.d/jenkins # 日志分割配置文件
/etc/sysconfig/jenkins # Jenkins 主配置文件
/usr/lib/jenkins # 存放 war 包目錄
/usr/lib/jenkins/jenkins.war # war 包
/usr/sbin/rcjenkins # 命令
/var/cache/jenkins # war 包解壓目錄 Jenkins 網頁代碼目錄
/var/lib/jenkins # Jenkins 工作目錄
/var/log/jenkins # 日志
配置文件說明
[root@jenkins ~]# grep "^[a-Z]" /etc/sysconfig/jenkins
JENKINS_HOME="/var/lib/jenkins" # Jenkins 工作目錄
JENKINS_JAVA_CMD=""
JENKINS_USER="jenkins" # Jenkins 啟動用戶
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
JENKINS_PORT="8080" # 端口
JENKINS_LISTEN_ADDRESS=""
JENKINS_HTTPS_PORT=""
JENKINS_HTTPS_KEYSTORE=""
JENKINS_HTTPS_KEYSTORE_PASSWORD=""
JENKINS_HTTPS_LISTEN_ADDRESS=""
JENKINS_HTTP2_PORT=""
JENKINS_HTTP2_LISTEN_ADDRESS=""
JENKINS_DEBUG_LEVEL="5"
JENKINS_ENABLE_ACCESS_LOG="no"
JENKINS_HANDLER_MAX="100" # 最大連接
JENKINS_HANDLER_IDLE="20"
JENKINS_EXTRA_LIB_FOLDER=""
JENKINS_ARGS=""
瀏覽器訪問測試: http://192.168.200.112
解鎖 Jenkins,密碼從命令行中獲取
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
0e1a6450e16c43e1822bd7c1bf9bf696
輸入授權密碼,然后點擊下一步
Jenkins 離線解決方法:
1.保留此離線頁面,重新開啟一個瀏覽器 tab 標簽頁
2.輸入網址:http://192.168.200.112:8080/pluginManager/advanced
3.進入該頁面最底下,找到【升級站點】,把其中的鏈接改成 http,http://updates.jenkins.io/update-center.json,確定保存
4.提示 jenkins ,在重新啟動 jenkins ,OK,已經可以重新聯網,下載插件
重要:如果改完 Http 還是不行,請改成如下鏡像地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
http://mirror.esuni.jp/jenkins/updates/update-center.json
http://mirror.xmission.com/jenkins/updates/update-center.json
[root@jenkins ~]# vim /var/lib/jenkins/updates/default.json
{"connectionCheckUrl":"http://www.baidu.com/"
[root@jenkins ~]# /etc/init.d/jenkins start
Starting jenkins (via systemctl): [ 確定 ]
重啟 Jenkins 服務
[root@jenkins ~]# /etc/init.d/jenkins restart
稍等一會來導安裝插件選擇的頁面
重啟Jenkins
[root@jenkins ~]# /etc/init.d/jenkins restart
Starting jenkins (via systemctl): [ 確定 ]
Linux中卸載Jenkins 的方法
1、rpm卸載
rpm -e jenkins
2、檢查是否卸載成功
rpm -ql jenkins
3、徹底刪除殘留文件
find / -iname jenkins | xargs -n 1000 rm -rf