Jenkins 使用指南 之 服務安裝篇

Elijah_Wang發表於2021-02-08

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 協議》,轉載必須註明作者和本文連結
夏蟲不語冰

相關文章