Note: 本次 Jenkins 服務安裝,伺服器以 CentOS 7 系統為例,且以 root 使用者啟動並執行服務。
本篇 Jenkins 使用指南,將簡要概述一下 Jenkins 服務安裝過程中涉及的以下技術細節:
- 環境要求
- 安裝 Java 8
- 安裝 Jenkins
- 基礎配置
- 小貼士
I. 環境要求
因為 Jenkins 是由 Java 語言開發的工具,因此,安裝並執行該工具需要作業系統安裝對應的 Java 執行環境。
Jenkins 現支援的 Java 執行環境有:
- Java 8:OpenJDK JDK / JRE 8 - 64 bits
- Java 11:OpenJDK JDK / JRE 11 - 64 bits
- 注意:早於 Java 8 的古老版本以及 Java 9, 10, 12 均不支援安裝
II. 安裝 Java 8
1. 檢視系統是否自帶 jdk
$ java -version
$ rpm -qa | grep java
$ rpm -qa | grep jdk
$ rpm -qa | grep gcj
若有,且版本不符合要求,則解除安裝重新安裝(兩種方法任選其一):
$ rpm -e --nodeps `rpm -qa | grep java`
# OR:
$ rpm -qa | grep java | xargs rpm -e --nodeps
2. 檢視 Java 版本庫
$ sudo yum search java | grep jdk
3. 安裝 Java 8
$ sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
...
Installed:
java-1.8.0-openjdk.x86_64 1:1.8.0.272.b10-1.el7_9 java-1.8.0-openjdk-devel.x86_64 1:1.8.0.272.b10-1.el7_9
...
4. 檢視 Java 8 的安裝位置
透過以上方法安裝的 Java 放在固定位置 /usr/local/java/
OR /usr/lib/jvm
$ ll /usr/local/java/
# OR:
$ ll /usr/lib/jvm
5. 設定環境變數
$ sudo vi /etc/profile
檢視是否已新增環境變數 JAVA_HOME
JRE_HOME
CLASSPATH
,預設情況下已新增:
export JAVA_HOME=/usr/local/java/jdk1.8.0_11
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib/tools.jar:%JAVA_HOME%/lib/dt.jar
export PATH=${JAVA_HOME}/bin:$PATH
若未新增環境變數,則編輯該檔案,在末尾加上如下內容:(jdk版本需自行填寫,上面複製的版本)
#set java environment
JAVA_HOME=/user/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH
6. 重新整理配置,使其生效
$ source /etc/profile
7. 檢視java版本
$ java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
III. 安裝 Jenkins
1. 安裝 Jenkins 的長期支援穩定版
$ sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
$ sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
$ sudo yum upgrade
$ sudo yum install jenkins java-1.8.0-openjdk-devel
$ sudo systemctl daemon-reload
2. 啟動 Jenkins 服務
$ sudo systemctl start jenkins.service
# 如果需要修改啟動指令碼,則
$ sudo vi /etc/init.d/jenkins
# 修改之後,需要執行:
$ sudo systemctl daemon-reload
# 重啟服務
$ sudo systemctl restart jenkins.service
# 檢視服務狀態
$ sudo systemctl status jenkins.service
Loaded: loaded (/etc/rc.d/init.d/jenkins; generated)
Active: active (running) since Tue 2018-11-13 16:19:01 +03; 4min 57s ago
如果安裝了防火牆 Firewall,必須將 Jenkins 新增例外:
# YOURPORT=8080
# PERM="--permanent"
# SERV="$PERM --service=jenkins"
$ firewall-cmd $PERM --new-service=jenkins
$ firewall-cmd $SERV --set-short="Jenkins ports"
$ firewall-cmd $SERV --set-description="Jenkins port exceptions"
$ firewall-cmd $SERV --add-port=$YOURPORT/tcp
$ firewall-cmd $PERM --add-service=jenkins
$ firewall-cmd --zone=public --add-service=http --permanent
$ firewall-cmd --reload
IV. 基礎配置
1. 以 root 使用者執行 jenkins 中 shell 命令
預設情況下,系統在安裝 jenkins 服務的同時,會建立 jenkins 使用者組 及 jenkins 使用者,並以 jenkins:jenkins 使用者執行 jenkins 服務,為了實際開發方便,我們考慮以 root 使用者執行 jenkins 服務:
- 將jenkins賬號分別加入到root組中
$ sudo gpasswd -a root jenkins
- 開啟並修改 Jenkins 配置檔案:
$ sudo vim /etc/sysconfig/jenkins
# 修改$JENKINS_USER,並去掉當前行註釋
$JENKINS_USER="root"
$JENKINS_GROUP="root"
- 修改Jenkins相關資料夾使用者許可權:
$ sudo chown -R root:root /var/lib/jenkins
$ sudo chown -R root:root /var/cache/jenkins
$ sudo chown -R root:root /var/log/jenkins
- 重啟 Jenkins 服務並檢查執行Jenkins的使用者是否已經切換為 root:
# 重啟 Jenkins(若是其他方式安裝的jenkins則重啟方式略不同)
$ sudo systemctl restart jenkins.service
# 檢視 Jenkins 程式所屬使用者:
$ sudo ps -ef | grep jenkins
# OR:
$ sudo ps -aux | grep jenkins
# 若顯示為root使用者,則表示修改完成
2. 埠配置
# 判斷 8080 埠是否已經被佔用
$ sudo lsof -i:8080
# 若是,則:
$ sudo vi /etc/sysconfig/jenkins
# before:
HTTP_PORT=8080
# after:
HTTP_PORT=8081
# 重啟服務
$ sudo systemctl restart jenkins.service
V. 小貼士
Jenkins 的配置檔案在不同的 Linux 版本中,檔案位置有所不同:
- Debian/Ubuntu: /etc/default/jenkins
- RedHat/CentOS: /etc/sysconfig/jenkins
以上,Jenkins 服務安裝介紹完畢。
— END —
本作品採用《CC 協議》,轉載必須註明作者和本文連結