Jenkins 使用指南 之 服务安装篇

Jenkins 使用指南 之 服务安装篇

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 协议》,转载必须注明作者和本文链接
夏蟲不語冰
Elijah_Wang
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!