《Jenkins的安装与使用,轻松构建自动化工作流程》
1、介绍
1.1 什么是Jenkins
Jenkins
是一个开源的持续集成和交付工具,用于自动化构建、测试和部署软件项目。它提供了一个易于使用的Web界面,帮助开发团队自动化构建、测试和交付应用程序。
Jenkins 具有以下主要特点和功能
:
自动化构建
:可以通过配置构建任务来自动构建项目代码,包括编译、打包、测试等过程。持续集成
:可以与版本控制系统(如Git、SVN等)集成,实时监测代码变更,并触发自动构建和测试。插件扩展
:Jenkins 提供了大量的插件,用于扩展其功能,支持各种不同的构建、测试和部署场景。可视化界面
:提供了直观的图形界面,用于管理和监控构建任务、查看构建日志和报告等。安全性和权限控制
:可以配置用户权限和安全策略,确保只有授权的人员能够访问和操作 Jenkins。
通过使用
Jenkins
,开发团队可以实现持续集成和交付,提高软件开发的效率和质量。它广泛应用于各种软件开发项目,包括Web应用程序、移动应用程序、嵌入式系统等。
1.2 Jenkins的优势和用途
1.2.1 优势
- 自动化构建、测试和部署软件项目。
- 持续集成和持续交付流程的实现。
- 可扩展性和丰富的插件生态系统。
- 灵活的配置和自定义选项。
- 多平台和多项目支持。
- 可靠性和稳定性。
1.2.2 用途
- 自动化构建和测试:自动拉取代码、编译、运行测试、生成测试报告等。
- 持续集成和持续交付:与版本控制系统集成,实现快速迭代和交付。
- 自动化部署和发布:自动将构建结果部署到不同环境。
- 监控和报警:监控项目构建和部署状态,及时发送报警通知。
- 构建日志和报告的可视化管理。
- 集成其他工具和服务,如代码质量分析工具、持续部署工具等。
2、安装Jenkins
2.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-2023.key
2.2 安装Jenkins
yum install fontconfig java-11-openjdk
yum install jenkins
2.3 启动Jenkins
# 启动Jenkins
systemctl start jenkins
# 设置开机启动
systemctl enable jenkins
# 查看Jenkins状态
systemctl status jenkins
3、配置Jenkins
3.1 访问Jenkins控制台
-
游览
打开浏览器输入链接:http://localhost:8080 , 默认端口号是8080 -
查看密码
# 查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword
登录
3.2 安装插件
-安装推荐的插件
等待安装完成
3.3 创建管理员账号
创建账号
- 安装成功,进入页面
3.4 安装工具
安装Gitee
安装Maven
(可以自行在Linux系统安装,推荐直接在Linux中安装
)
3.5 安裝Git环境
- 安装
# 安装
[root@rancher bin]# yum -y install git
# 查看版本
[root@rancher bin]# git --version
git version 2.27.0
# yum安装git被安装在/usr/libexec/git-core目录下
3.6 安装Maven环境
下载命令
wget https://dlcdn.apache.org/maven/maven-4/4.0.0-alpha-7/binaries/apache-maven-4.0.0-alpha-7-bin.tar.gz
将安装包移动到/usr/local/目录下
mv apache-maven-4.0.0-alpha-7-bin.tar.gz /usr/local/
解压、安装
# 进入/usr/local/目录
cd /usr/local
# 解压
tar -zxvf apache-maven-4.0.0-alpha-7-bin.tar.gz
# 重命名
mv apache-maven-4.0.0-alpha-7 maven
# 删除安装包
rm -rf apache-maven-4.0.0-alpha-7-bin.tar.gz
- 配置阿里云镜像和仓库地址
# 进入maven目录
cd /usr/local/maven/
# 创建目录 repo
mkdir repo
# 配置本地仓库
# 编辑conf/settings.xml 文件
vim conf/settings.xml
# 添加本地仓库配置
<localRepository>/usr/local/maven/repo</localRepository>
# 注释掉原本的镜像 添加阿里云镜像
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
esc :wq保存并退出
- 配置环境变量
vim /etc/profile
# 新增
export MAVEN_HOME=/usr/local/maven
export PATH=${JAVA_HOME}/bin:${CATALINA_HOME}/bin:${MAVEN_HOME}/bin:$PATH
# :wq
# 刷新
source /etc/profile
# 测试
mvn -version
3.7 安装Docker-compose
- 通过pip在线安装(推荐)
#安装依赖
yum -y install epel-release
#安装PIP
yum -y install python-pip
#升级PIP
pip install --upgrade pip
- 下载安装
curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加权限
chmod +x /usr/local/bin/docker-compose
# 运行
docker-compose
- 使用官方安装脚本自动安装
安装命令如下:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
3.6 设置全局配置
找到入口
新增凭据
选择Gitee令牌,进入Gitee凭据页面
– Gitee
进入页面后选择创建令牌
输入凭据描述(随意)
复制令牌
创建完成
新增Git凭据
–Git
在linux中生成秘钥
ssh-keygen -t rsa
查看秘钥
[root@rancher git-core]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCoQ1yhxX/1OQ9rb1ySIqNOpby6jsW3JqpW9uZgVnpUx3ssYrIPR8TAgFKy1jZVqimd8rvJzE7QBmnFI+GKsLEIsykAhxT69M6z5LYor1CxwdS4BY5edVfo1L9uHXFIyYJ2etz2ZVqjGCYvovXum1WEOv+QLcAK3xFn7NF/hKxBWKwgHWMiSXbuq57h81ulsNxaQa8wM7YcBlt9MWiA+R5LfkLTD2ViGQN4yXSVapNappb5H4Fn+JnkB+R886oQeGdt71NXzTAqZzAkj1zVKRxf6WPTPauhIFV6Sj4W+1SYnEMOfkL2soJAmJULIsUQ9q9NFjERY6Er8ESQuYlH+e2ctGyr6ydPgvqXrrt+UgspIfbwuguDscJ9Ux2GCr0xpNYF7V8JBN+MWEyWolSM26+ZGw1Qan8i3DQVbtiWZ8oY9leclKt53IuseQ22upqSD/sF05dItdw/pj8IYMPlLUpS06U1ePED2yt1vku1quFiodvkUq8zwP4/ise1Pr0wcic= root@rancher
配置参数
4、创建Jenkins项目
-
创建一个项目
-
配置代码地址
-
增加构建步骤1,选择Maven构建
-
增加构建步骤2,选择Shell命令执行构建
-
输入命令行
打包成功之后将jar包使用Dockerfile编排文件打包为镜像,然后推送到阿里云私有仓库,然后通知rancher升级版本,执行重新部署
echo "打包成功"
cd /var/lib/jenkins/workspace/project/target
echo "打包为docker镜像------start"
cp /Dockerfile /var/lib/jenkins/workspace/project/target/
docker build --build-arg JAR_NAME=spring-k8s-2023.jar -t spring-k8s-2023 .
echo "打包为docker镜像------end"
TAG=$(date +'%Y%m%d%H%M%S')
echo "镜像名称为:spring-k8s-2023:$TAG"
docker tag spring-k8s-2023 registry.cn-hangzhou.aliyuncs.com/personal_xiang/spring-k8s-2023:$TAG
echo "推送到阿里云仓库------start"
docker login --username=15085938784 --password="XIANGXIANG401" registry.cn-hangzhou.aliyuncs.com
docker push registry.cn-hangzhou.aliyuncs.com/personal_xiang/spring-k8s-2023:$TAG
echo "推送到阿里云仓库------end"
# 更新镜像
echo "开始将新镜像部署到远端!"
echo "$TAG"
/usr/bin/rancher kubectl set image deployment/spring-k8s-2023 spring-k8s-2023=registry.cn-hangzhou.aliyuncs.com/personal_xiang/spring-k8s-2023:$TAG -n jenkins
[ $? != 0 ] && echoRed "请注意,在执行镜像更新时出错,故而退出!" && exit 1
echo "部署完成!"
创建dockerfile文件内容
# Dockerfile
FROM openjdk:8-jdk-alpine
COPY ./spring-k8s-2023.jar ./app/spring-k8s-2023.jar
WORKDIR /app
CMD ["java", "-jar", "spring-k8s-2023.jar"]
- 执行构建