- 官方文档: Install Jenkins
可以通过 yum 在 Red Hat Enterprise Linux、CentOS 和其他基于 Red Hat 的发行版上安装 Jenkins。您需要选择 Jenkins 长期支持版本或 Jenkins 每周版本。
长期稳定版本
安装 Oracle JDK 11
从 Oracle JDK Download 下载二进制包,上传到服务器,此处略
安装 jdk
1
2mkdir /usr/local/java
tar xf jdk-11.0.13_linux-x64_bin.tar.gz -C /usr/local/java/- 如果需要安装 jre,需要进入到 jdk 目录,执行以下命令
1
2cd /usr/local/java/jdk-11.0.13/
./bin/jlink --module-path jmods --add-modules java.desktop --output jre配置环境变量 /etc/profile.d/java.sh
1
2
3
4
5
export JAVA_HOME=/usr/local/java/jdk-11.0.13
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin验证 Java 版本
1
2
3
4
5# source /etc/profile.d/java.sh
# java -version
java version "11.0.13" 2021-10-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.13+10-LTS-370)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.13+10-LTS-370, mixed mode)
安装 Jenkins
Jenkins 每 12 周会从常规版本流中选择一个 LTS(长期支持)版本作为该时间段的稳定版本。它可以从 redhat-stable
yum 存储库中安装。
安装 Jenkins
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 下载 Jenkins repo 文件
wget --no-check-certificate -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
# 导入秘钥
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# 安装 jdk,可选 Oracle jdk 或者 Openjdk
# yum install epel-release java-11-openjdk-devel
# 查看 Jenkins 可选版本
yum makecache fast
yum list jenkins --showduplicates
# 安装 Jenkins
yum install jenkins fontconfig -y修改
/usr/lib/systemd/system/jenkins.service
文件,取消并修改以下配置注释1
2Environment="JENKINS_LOG=/var/log/jenkins/jenkins.log"
Environment="JAVA_HOME=/usr/local/java/jdk-11.0.13" # 修改具体的 JDK 安装目录配置服务以及启动
1
2
3
4
5
6
7
8# 配置开机启动
systemctl daemon-reload && chkconfig jenkins on
# 启动 Jenkinsls
systemctl start jenkins.service
# 查看 jenkins 服务状态
systemctl status jenkins.service配置 Jenkins,通过 yum 安装的 jenkins,相关文件默认所在位置
- 家目录: /var/lib/jenkins/
- 配置文件: /etc/sysconfig/jenkins
- 日志文件: /var/log/jenkins/jenkins.log
通过以下命令查看日志
1
tailf /var/log/jenkins/jenkins.log
初始密码文件: /var/lib/jenkins/secrets/initialAdminPassword
浏览器访问
http://xxx.xxx.xxx.xxx:8080
,输入初始密码,等待 Jenkins 自动跳转到插件安装选择界面,根据提示执行即可。
配置 Jenkins 插件使用国内 URL
修改
/var/lib/jenkins/hudson.model.UpdateCenter.xml
文件,将 url 的值改成如下值:1
sed -i 's@updates.jenkins.io@mirrors.tuna.tsinghua.edu.cn/jenkins/updates@' /var/lib/jenkins/hudson.model.UpdateCenter.xml
或者登录 Jenkins,点击 –> 插件管理 –> 高级;找到升级站点,修改 URL 的值为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
修改 defaults.json 文件
1
2sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json修改完后重启 Jenkins
1
systemctl restart jenkins
更新 Jenkins
下载新版本的 Jenkins war 包
1
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.321/jenkins.war
停止 Jenkins 服务,替换 war 包
1
2systemctl stop jenkins.service
mv jenkins.war /usr/lib/jenkins/jenkins.war重新启动 Jenkins 服务
1
systemctl restart jenkins
登录 Jenkins 验证版本是否升级成功
使用 CLI 安装插件
下载 Jenkins CLI,CLI 客户端可以直接从 Jenkins 控制器的 URL
/jnlpJars/jenkins-cli.jar
下载,如:1
wget http://localhost:8080/jnlpJars/jenkins-cli.jar
注意: 虽然 CLI .jar 可以用于不同版本的 Jenkins,但如果在使用过程中出现任何兼容性问题,请从 Jenkins 控制器重新下载最新的 .jar 文件。
调用 CLI 客户端的一般语法如下:
1
java -jar jenkins-cli.jar [-s JENKINS_URL] [global options...] command [command options...] [arguments...]
使用 CLI 安装插件
1
2
3
4
5# 示例,安装 uno-choice:2.5.7
java -jar jenkins-cli.jar -auth 'username':'password' -s http://localhost:5908 install-plugin uno-choice:2.5.7
# 示例,重启 Jenkins
java -jar jenkins-cli.jar -auth 'username':'password' -s http://localhost:5908 safe-restart
离线安装插件
- 官方插件中心下载地址: 官方 Plugins 下载地址
- 国内清华源插件中心地址: 清华源 Plugin 下载地址
从插件下载中心下载插件,如:
1
wget --no-check-certificate https://updates.jenkins-ci.org/download/plugins/ruby-runtime/0.12/ruby-runtime.hpi
在插件管理中心高级设置页面,选择上传插件。或者将插件放入 Jenkins 的
plugin
目录,然后重启 Jenkins
排错
问题 1:缺少 fontconfig
1
2
3
4
5
6
7
8
9
10
11
12
13AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? See also: https://jenkins.io/redirect/troubleshooting/java.awt.headless
java.lang.NullPointerException
at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:372)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:317)
at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
......解决方法:
1
yum install -y fontconfig
第一次访问 Jenkins,输入密码解锁 Jenkins 后一直卡在 Setup Wizard 页面。解决方法如下:
- 修改 /etc/sysconfig/jenkins 文件,修改其中的 JENKINS_JAVA_OPTIONS 配置,添加代理,如下:
1
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -DsocksProxyHost=192.168.64.151 -DsocksProxyPort=8888"
- 重启 Jenkins 服务
- 然后重新访问 jenkins,输入密码解锁,等待 jenkins 提示无法安装插件时,选择跳过安装;
- 正常进入 Jenkins 后,可以恢复 JENKINS_JAVA_OPTIONS 选项配置,重启 Jenkins 服务;