# Jenkins教程 - 2 环境安装
使用 Jenkins 实现自动化集成部署,首先要准备三台服务器。
- Git 服务器
这里使用 gitee 码云就好了,如果想有自己的 git 服务器,可以部署 GitLab 进行搭建。
- 业务服务器
业务服务器也就是我们开发的项目运行的服务器,需要将项目部署到这台服务器。
- Jenkins 服务器
Jenkins 服务器来实现项目的自动化打包部署,将项目自动上传部署到业务服务器。
# 2.1 Git 服务器
使用 gitee码云 进行代码管理就行,所以这个服务器就不用了。
如果使用 GitLab ,还需要搭建属于自己的 Git 服务器,比较麻烦。
# 2.2 业务服务器
业务服务器就是运行我们项目的服务器,这里使用 SpringBoot 实现一个简单的项目,所以安装 JDK 就可以了。
后面使用 Jenkins 将项目自动部署到这台服务器。
我用的是 ubuntu22.04 ,直接执行 java 命令,会提示如何安装 JDK。
直接执行安装就可以了,这里根据 Jenkins 版本,最低也要安装 JDK11。
# 2.3 Jenkins 服务器
需要安装:
- Jenkins :肯定是需要的;
- JDK :Jenkins 是 Java 语言开发的,所以需要安装 JDK;
- Maven :进行项目的构建;
- Git :用来拉取代码。
# 1 安装 JDK
和上面业务服务器中安装 JDK 一样。
# 2 安装 Jenkins
Jenkins 官网:https://www.jenkins.io/
,直接去下载页面下载即可。
也可以访问 Jenkins 中文官网:https://www.jenkins.io/zh/
,但是我看到中文网站的版本比较旧,这里我使用英文官网的最新版本。
Jenkins 就是基于 Java 开发,提供了 war 包、原生包/安装程序和 Docker 镜像的安装方式,这里我们直接下载 war 包,然后后面直接 java -jar
运行这个 war 包就可以了。
直接下载 war 包,然后上传到 Jenkins 服务器,然后使用如下指令直接运行 war 包即可:
# 默认是8080端口
java -jar jenkins.war
# 如果要修改端口,可以使用--httpPort参数
java -jar jenkins.war --httpPort=8081
2
3
4
5
上面的命令是在前台运行 jenkins,ctrl + c
后就停止运行了。
如果是使用 SSH 连接的 Jenkins 服务器,关闭 SSH 连接,Jenkins 服务也会停止,所以需要在后台运行。
所以我们可以在后台运行 Jenkins 服务:
# 在后台运行jenkins,日志输出到jenkins.log
nohup java -jar jenkins.war > jenkins.log 2>&1 &
2
运行项目后,就可以通过浏览器进行访问 Jenkins 管理页面了。
我的 Jenkins 的服务器 IP 是 192.168.0.106
,所以可以通过 192.168.0.106:8080
来访问:
Jenkins 第一次运行需要初始化数据,所以访问的时候,可能会提示一个等待页面,等待一会就好了。
提示输入管理员密码,管理员密码在运行 java -jar jenkins.war
指令的时候,在控制台有打印出来,也可以在 ~/.jenkins/secrets/initialAdminPassword
文件中找到。
登录后显示:
选择安装推荐的插件进行安装,等待安装完成:
安装完成,会跳转到创建管理员账户页面,可以填写信息创建一个管理员,下次就可以使用创建的用户登录 Jenkins 管理页面了:
然后保存,进行实例配置,继续保存并完成:
然后,开始使用:
然后跳转到管理界面了:
# 3 安装 Maven
我这里直接使用 apt 进行安装 Maven 了。
如果你不可以,可以去 Maven 官网下载 Maven 的安装包,然后直接解压到 /usr/local 目录下,这样就不用在配置环境变量了,比较简单,这里就不介绍了。
安装完成,查看 maven 版本:
# 查看maven版本
mvn -v
2
正确显示信息表示安装成功:
配置Maven镜像
后面使用Maven构建 SpringBoot 项目,从官方网站下载依赖 jar 包会很慢,所以配置一下 Maven,使用阿里云镜像。
找到 Maven 下的 settings.xml
(执行 mvn -v
会显示 maven 的目录),将下面的配置添加到 <mirrors>
标签下:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
2
3
4
5
6
7
如下图:
# 4 安装 Git
使用yum安装
直接运行指令就好了:
yum install git
安装完成,查看 git 版本信息:
git --version
能打印出 git 的版本即表示安装成功。
使用apt安装
sudo apt install git
安装完成,查看 git 版本信息:
git --version
能打印出 git 的版本即表示安装成功。
# 2.4 Docker安装 Jenkins
# 1 搜索下载镜像
搜索 jenkins 镜像,下载 jenkins/jenkins
镜像。
# 搜索jenkins镜像
docker search jenkins
# 下载jenkins镜像
docker pull jenkins/jenkins
# 查看本地已下载的镜像
docker images
2
3
4
5
6
7
8
搜索镜像:
这里可以去dockerhub官网( https://hub.docker.com/ ),查看一下jenkins有哪些镜像,我下载 jenkins/jenkins 镜像,后面下载插件的时候提示jenkins版本低,后来我使用了jdk17 版本的jenkins镜像:
docker pull jenkins/jenkins:latest-jdk17
下载镜像:
# 2 运行容器
在运行镜像前,先在主机上创建目录,用于挂载容器中的目录,来持久保存 Jenkins 的配置。
# 我这里在家目录下创建的目录,目录自己定义,后面映射对应就好了
mkdir -p ~/projects/jenkins/jenkins_home
2
启动容器
docker run -d -u 0 --restart=always -p 8080:8080 -p 50000:50000 -v /home/doubi/projects/jenkins/jenkins_home:/var/jenkins_home --name myjenkins jenkins/jenkins
解释一下:
-d
: 指定容器在后台运行;-u 0
: 将容器的用户切换为 root 用户,避免后面因权限不足无法进行某些安装操作;-p 8080:8080
: 将主机的 8080 端口映射到容器的 8080 端口。Jenkins 默认的 web 界面端口是 8080;-p 50000:50000
: 将主机的 50000 端口映射到容器的 50000 端口。这个端口通常用于 Jenkins 运行构建代理;-v /home/doubi/projects/jenkins/jenkins_home:/var/jenkins_home
: 将主机上/home/doubi/projects/jenkins/jenkins_home
目录挂载到容器内的/var/jenkins_home
目录。这个目录包含了 Jenkins 的数据,包括配置、作业和插件等。这样做是为了持久化 Jenkins 的数据,以便容器被删除后数据仍然保留在主机上;--name myjenkins
: 为容器指定一个名字,这里是myjenkins
。这样可以方便地通过容器名字来管理和访问容器;jenkins/jenkins
: 指定要使用的 Jenkins 镜像,这个是我们刚才下载的镜像。
运行完成,使用 docker ps
可以查看到运行的镜像。
# 3 访问Jenkins
容器已经运行了,可以使用 http://IP:8080
访问 Jenkins。
登录需要密码,在运行容器的时候,我们已经将容器的 var/jenkins_home
挂载到宿主机了,直接到挂载的目录找到 secrets/initialAdminPassword
文件,查看密码就好了。
然后按照前面的操作登录,安装推荐的插件、创建用户,操作是一样的。
如果遇到安装插件失败,可以通过如下命令查看一下容器日志:
# myjenkins是容器名称
docker logs myjenkins -f
2
通过日志查看一下插件安装失败的原因。
我查看日志遇到一个错误 Jenkins (2.387.3) or higher required
,后面我使用了 jdk17 版本的最新 jenkins 镜像:
docker pull jenkins/jenkins:latest-jdk17
你可以到 dockerhub 官网(https://hub.docker.com/
)搜索一下 jenkins 镜像,选择合适的版本。
# 4 查看Git
进入到容器
# 进入容器,刚才启动容器的时候,名称为myjenkins
docker exec -it myjenkins /bin/bash
2
查看Git
# 查看Git版本
git --version
2
可以看到 Jenkins 容器中已经集成了Git。
所以我们就不用再安装了。
运行指令的时候,注意是在容器内,还是在容器外。
# 5 查看JDK
进入到容器
# 进入容器,刚才启动容器的时候,名称为myjenkins
docker exec -it myjenkins /bin/bash
2
查看 Java 版本
# 查看Java版本
java -version
2
可以看到 Jenkins 容器中已经也已经集成了JDK,所以不用再安装了。
# 6 配置Maven
很遗憾,Jenkins 容器中没有安装 Maven,需要在Jenkins容器中安装被配置 Maven。
使用 apt 安装即可。
# 先更新一下,否则安装maven可能提示找不到包
apt update
# 安装maven
apt install maven
2
3
4
5
安装完成,查看 maven 信息:
配置Maven镜像
后面使用Maven构建 SpringBoot 项目,从官方网站下载依赖 jar 包会很慢,所以配置一下 Maven,使用阿里云镜像。
因为要使用 vim
命令编辑配置,所以需要安装一下 vim
:
# 安装vim
apt install vim
2
上面使用 mvn -v
命令查看 Maven 信息的时候,已经显示了 Maven 的目录,找到 /usr/share/maven/conf
下的 settings.xml
,将下面的配置添加到 <mirrors>
标签下:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
2
3
4
5
6
如下图: