系列文章目录
一、DevOps介绍
二、Code阶段工具
三、Build阶段工具
四、Operate阶段工具
五、Integrate工具
文章目录
前言
持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。
Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。
Jenkins需要大量的插件保证工作,安装成本较高,下面会基于Docker搭建Jenkins。
1、Jenkins介绍
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具。
Jenkins应用广泛,大多数互联网公司都采用Jenkins配合GitLab、Docker、K8s作为实现DevOps的核心工具。
Jenkins最强大的就在于插件,Jenkins官方提供了大量的插件库,来自动化CI/CD过程中的各种琐碎功能。
CI/CD可以理解为:
- CI过程即是通过Jenkins将代码拉取、构建、制作镜像交给测试人员测试。
- 持续集成:让软件代码可以持续的集成到主干上,并自动构建和测试。
CD过程即是通过Jenkins将打好标签的发行版本代码拉取、构建、制作镜像交给运维人员部署。
- 持续交付:让经过持续集成的代码可以进行手动部署。
- 持续部署:让可以持续交付的代码随时随地的自动化部署。
2、Jenkins安装
-
拉取Jenkins镜像
docker pull jenkins/jenkins:lts-jdk21
-
编写docker-compose.yml
version: "3.1" services: jenkins: image: jenkins/jenkins:lts-jdk21 container_name: jenkins ports: - 8080:8080 - 50000:50000 volumes: - ./data/:/var/jenkins_home/
-
将docker-compose.yml放到/usr/local/docker/jenkins_docker 文件夹下,docker/jenkins_docker是我新建的文件夹。
cd /usr/local mkdir -p docker/jenkins_docker cd docker/jenkins_docker/
-
在jenkins_docker文件夹下创建data文件夹,并附上读写权限
mkdir data chmod -R a+w data/
-
启动Jenkins
cd /usr/local/docker/jenkins_docker docker compose up -d
-
启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢, 需要重新设置下载地址为国内镜像站。
# 修改数据卷中的hudson.model.UpdateCenter.xml文件 <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://updates.jenkins.io/update-center.json</url> </site> </sites> # 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url> </site> </sites> # 清华大学的插件源也可以 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
-
再次重启Jenkins容器,访问Jenkins(需要稍微等会)
# 重启Jenkins docker compose restart
-
查看密码登录Jenkins,并登录下载插件
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
-
创建管理员用户
-
实例配置
-
安装必要插件
- Git Parameter
- Publish Over SSH
3、Jenkins入门配置
1、配置JDK和Maven
1.将JDK和Maven移动到Jenkins的挂载目录下/usr/local/docker/jenkins_docker
cd /usr/local/
mv jdk21/ docker/jenkins_docker/data/
mv maven/ docker/jenkins_docker/data/
2、创建SpringBoot项目,并提交到GitLab。
1、创建SpringBoot项目
2、编写Dockerfile和docker-compose.yml文件
3、将代码提交到GitLab
git init
git add .
git commit -m "初次提交"
git remote add origin http://101.126.17.78:8929/root/mytest.git
git branch -M main
git push -uf origin main
3、Jenkins配置Publish over SSH
- Remote Directory这里的参数是推送脚本或者文件的文件夹
我这里是新建了一个test的目录
4、Jenkins全局配置JDK、Maven
1、配置JDK21
- 添加JDK
/var/jenkins_home/jdk21
2、配置Maven
/var/jenkins_home/maven
5、新建任务及配置
- 新建任务
- 配置GitLab,拉取代码
- 配置Maven,拉取代码进行打包。
clean package -DskipTests
- 配置SSH,将打包好的jar包推送到指定服务器,并且执行脚本启动项目
target/*.jar docker/*
cd /usr/local/test/docker
mv ../target/*.jar ./
docker compose down
docker compose up -d --build
docker image prune -f
6、构建项目