Linux 安装 Jenkins 自动化打包工具

Linux 安装 Jenkins 自动化打包工具

一、Jenkins 简介

Jenkins 是一个开源的持续集成/持续交付(CI/CD)自动化服务器,它帮助开发团队自动执行软件开发过程中的各种任务,包括构建、测试以及部署。Jenkins 最初是从 Hudson 项目派生出来的,由 Sun Microsystems 开发,并在后来由社区维护和发展。Jenkins 可以运行在多种操作系统上,如 Windows、Linux 和 macOS。

主要特点

  • 插件生态系统:Jenkins 拥有丰富的插件生态系统,支持与几乎所有开发工具和技术栈的集成,包括版本控制系统(如 Git)、构建工具(如 Maven、Gradle)、代码质量工具(如 SonarQube)、通知系统(如 Email、Slack)等。
  • 高度可配置:用户可以通过图形界面或脚本配置 Jenkins,以满足特定项目的需要。
  • 分布式构建:Jenkins 支持将工作分配给多台机器进行并行处理,从而加速构建过程。
  • 易于使用:尽管功能强大,但 Jenkins 提供了友好的用户界面,使得配置和管理变得相对简单。
  • 社区支持:作为一款开源软件,Jenkins 背后有一个活跃的社区,提供文档、教程和论坛支持。

应用场景

  • 持续集成:每次代码提交后自动构建和测试,确保新代码不会破坏现有功能。
  • 持续交付/持续部署:自动将通过测试的应用程序部署到生产环境或其他指定环境。
  • 静态代码分析:自动执行代码质量检查。
  • 性能测试:定期执行性能测试,监控应用表现。
  • 自动化部署:简化跨多个环境的手动部署步骤。

使用案例

  • 小团队:即使是很小的团队也能利用 Jenkins 来提高效率,通过自动化减少手动操作。
  • 大型企业:大型组织可以使用 Jenkins 来管理复杂的多团队项目,确保不同组件之间的协调一致。
  • 云原生应用:对于采用微服务架构的应用来说,Jenkins 可以帮助实现高效的CI/CD流程。

总之,Jenkins 是一个非常灵活且强大的工具,适合于各种规模的软件开发项目,帮助团队加快软件交付速度同时保证质量。

二、官网下载

前置环境

自动化打包可能需要用到

image-20241125100748914

  • 选择 Stable (LTS) -> Past Releases 更多版本

image-20241125100815585

  • 选择下载 2.346.1 -> jenkins.war

image-20241125101101497

三、安装 Jenkins

3.1 环境配置
  • jenkins.war上传到服务器

使用 Xftp 工具或者 rz 命令上传到服务器

  • 创建 Jenkins 安装目录
# 创建 /usr/local/jenkins 目录
[root@linux-1 jenkins]# mkdir -p /usr/local/jenkins
# 将 jenkins.war 文件放到该目录下
[root@linux-1 jenkins]# ls
jenkins.war
  • 创建 Jenkins 数据目录
[root@linux-1 jenkins]# mkdir -p /usr/local/jenkins/data
[root@linux-1 jenkins]# ls
data  jenkins.war
  • 创建日志目录
[root@linux-1 jenkins]# mkdir -p /usr/local/jenkins/logs
[root@linux-1 jenkins]# ls
data  jenkins.war  logs
  • 配置环境变量,指定 Jenkins 的数据目录

这里需要配置环境变量,不然 jenkins 的数据目录会默认生成在 /root/.jenkins 目录下

# 修改 /etc/profile 配置文件,追加jenkins配置
[root@linux-1 jenkins]# vim /etc/profile

# jenkins
export JENKINS_HOME=/usr/local/jenkins/data

# 立即生效
[root@linux-1 jenkins]# source /etc/profile
  • 后台启动 Jenkins

使用 java 命令启动 Jenkins ,指定启动端口和日志目录

[root@linux-1 jenkins]# nohup java -jar /usr/local/jenkins/jenkins.war --httpPort=18001 | /usr/sbin/cronolog /usr/local/jenkins/logs/jenkins_%Y-%m-%d.out >> /dev/null 2>&1 &

# nohup 以后台的方式启动
# httpPort 配置启动端口
# /usr/sbin/cronolog 指定jenkin的日志路径

Tip

/usr/sbin/cronolog 命令可能不存在

使用 yum install cronolog 下载即可

  • 使用 kill -9 命令关闭 Jenkins
[root@linux-1 jenkins]# ps -ef | grep jenkins
root     30834 30099 52 15:25 pts/1    00:04:49 java -jar /usr/local/jenkins/jenkins.war --httpPort=18001
root     30835 30099  0 15:25 pts/1    00:00:00 /usr/sbin/cronolog /usr/local/jenkins/logs/jenkins_%Y-%m-%d.out
root     31420 30099  0 15:34 pts/1    00:00:00 grep --color=auto jenkins
[root@linux-1 jenkins]# kill -9 30834
  • 成功启动

启动成功,日志文件中包含了初始化密码的路径

/usr/local/jenkins/data/secrets/initialAdminPassword

2024-11-25 07:25:53.987+0000 [id=29]	INFO	jenkins.install.SetupWizard#init: 

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

83193884403e484e80f5b9c2c293e5e0

This may also be found at: /usr/local/jenkins/data/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************
3.2 Jenkins 启动和停止脚本
  • 启动脚本
# 进入 /usr/local/jenkins/
[root@linux-1 jenkins]# cd /usr/local/jenkins/
# 创建 jenkins-start.sh 启动脚本
[root@linux-1 jenkins]# vim jenkins-start.sh

jenkins-start.sh

#! /bin/bash

echo -e "\n"
echo "==================== JENKINS START ========================"
echo -e "\n"

psid=`ps -aux | grep jenkins.war | grep -v "grep" | awk '{print $2}'`

print="start"

if [ -n "$psid" ]; then
   kill -9 "$psid"
   echo "jenkins server status ====> running"
   print="restart"
else
   echo "jenkins server status ====> stopped"
fi

sleep 2s

nohup java -jar /usr/local/jenkins/jenkins.war --httpPort=18001 | /usr/sbin/cronolog /usr/local/jenkins/logs/jenkins_%Y-%m-%d.out >> /dev/null 2>&1 &

echo "jenkins server ${print} success!"

echo -e "\n"
echo "==================== JENKINS START ========================"
echo -e "\n"
  • 停止脚本
# 创建 jenkins-stop.sh 关闭脚本
[root@linux-1 jenkins]# vim jenkins-stop.sh

jenkins-stop.sh

#! /bin/bash

echo -e "\n-------------------- JENKINS STOP --------------------\n"

psid=`ps -aux | grep jenkins.war | grep -v "grep" | awk '{print $2}'`

if [ -n "$psid" ]; then
   kill -9 "$psid"
   echo "jenkins server status ====> running"
else
   echo "jenkins server status ====> stopped"
fi

echo "jenkins stop success!!!"

echo -e "\n-------------------- JENKINS STOP --------------------\n"
  • 添加脚本文件可执行权限
[root@linux-1 jenkins]# chmod ug+x jenkins-start.sh jenkins-stop.sh
[root@linux-1 jenkins]# ls
data  jenkins-start.sh  jenkins-stop.sh  jenkins.war  logs
3.3 异常问题
  • 字体管理器的初始化失败
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:379)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:324)
	at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
	at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)

解决方案

使用 yum 下载字体

[root@linux-1 jenkins]# yum install fontconfig
  • java 版本太旧
Running with Java 8 from /usr/local/jdk1.8.0_202/jre, which is older than the minimum required version (Java 11).
Supported Java versions are: [11, 17, 21]
See https://jenkins.io/redirect/java-support/ for more information.

解决方案

下载更新版的JDK即可

四、初始化 Jenkins

  • 浏览器访问, 输入初始化密码

通过 ip:httpPort 启动端口

image-20241125165433306

  • 选择安装推荐的插件

image-20241125165634164

  • 等待插件安装

image-20241125165728141

  • 安装完成,创建管理员账号

账号:fox

密码:fox123456

image-20241125171314352

  • 配置jenkins访问地址,便于一些插件使用

image-20241125171438040

  • 配置完成开始使用

image-20241125171453590

  • 随后就进入到Jenkins的管理界面了,不同版本的Jenkins界面可能会不一样

image-20241125171510816

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值