5.3 Jenkins入门配置
由于Jenkins需要从Git拉取代码、需要本地构建、甚至需要直接发布自定义镜像到Docker仓库,所以Jenkins需要配置大量内容。
5.3.1 构建任务
准备好GitLab仓库中的项目,并且通过Jenkins配置项目,实现当前项目的DevOps基本流程。
1、gitlab上创建新项目
- 构建Maven工程发布到GitLab(Gitee、Github均可)
- 在gitlab上创建一个新的项目命名为“mytest”
2、填写项目名称,这里创建公开的,不需要验证就可以访问
创建完成后出现以下页面:
以下命令记录一下,一旦往里面推送了代码,就消失了 git config --global user.name "Administrator" git config --global user.email "admin@example.com" cd existing_folder git init --initial-branch=main git remote add origin http://192.168.2.210/root/mytest.git git add . git commit -m "Initial commit" git push -u origin main
3、GitLab查看项目
注:代码可以通过编译工具上传到gitlab或者直接在gitlab上创建,由于我的电脑里没有Java编译工具,我直接在gitlab上创建pom.xml文件和HelloWorld.java和greeter.java文件。
或者使用pycharm上传代码到gitlab,流程参考CSDN文档:https://blog.csdn.net/weixin_64124795/article/details/129697625
2、Jenkins上新建任务并配置
- 新建任务
2、选择自由风格构建任务
确定之后就要配置Git的URL地址。
5.3.2 配置Jenkins上的源码拉取地址
Jenkins需要将Git上存放的源码存储到Jenkins服务所在磁盘的本地
- 配置任务源码拉取的地址
- 进入到创建的【mytest任务】中,选择左侧的“配置”,将git的URL和对应分支配置上
注意:分支必须要与gitlab 上的一致。由于我们gitlab创建的是公开的,所以这里不需要密码,如果gitlab是私有的,需要配置密码
- Jenkins立即构建
- 点击立即构建之后,Jenkins就会拉取gitlab上的代码到容器内部
查看任务拉取Git源码日志:查看构建工程的日志,点击上述③的任务条即可
可以看到源码已经拉取到Jenkins本地,可以根据第三行日志信息,查看Jenkins本地拉取到的源码。也就是说Jenkins拉取的源码存放到了这个目录下。
2、构建成功后,说明源码已经拉取到Jenkins容器内部了,可以进入容器内部/var/jenkins_home/workspace/test查看Jenkins容器中的源码,与gitlab上的保持一致
docker exec -it jenkins bash cd /var/jenkins_home/workspace/mytest ls
源码存放位置:容器内/var/jenkins_home/workspace/mytest
5.3.3 配置Maven构建代码
代码拉取到Jenkins本地后,需要在Jenkins中对代码进行构建,这里需要Maven的环境,而Maven需要Java的环境,接下来需要在Jenkins中安装JDK和Maven,并且配置到Jenkins服务。
maven能够将从gitlab上拉取的代码进行构建,所以需要在Jenkins上进行配置。
(修改settings.xml文件的步骤在Build阶段工具中进行了配置,参考前面)
- 配置已经完成,我们还需要把
/usr/local
下的maven和jdk文件移动到/usr/local/jenkins_docker/data下:
# 检查maven文件和jdk文件 cd /usr/local ls # 将/usr/local目录下的jdk和maven移动到 /usr/local/docker/jenkins_docker/data 目录下,目的是通过数据卷映射到容器内部 cd /usr/local/jenkins_docker/data mv /usr/local/maven/ ./ mv /usr/local/jdk/ ./ ls
(Build阶段工具已做) 准备JDK、Maven压缩包通过数据卷映射到Jenkins容器内部/var/jenkins_home/
下。
数据卷存放位置:
(Build阶段工具已做) 解压压缩包,并配置Maven的settings.xml
<!-- 阿里云镜像地址 --> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <!-- JDK1.8编译插件 --> <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
1、Jenkins配置JDK&Maven并保存
【系统管理】——【全局工具配置】——【配置JDK&Maven】
路径为jdk在容器内部的位置,前面操作已经把jdk文件通过数据卷映射到了容器内的/var/jenkins_home/jdk
路径为maven在容器内部的位置,前面操作已经把maven文件通过数据卷映射到了容器内的/var/jenkins_home/maven
2、CI操作(1)——配置Jenkins任务构建代码
这步配置可以让Jenkins调用maven将代码打包成jar包
点击立即构建测试
查看日志可以看到执行了执行的clean packsge -DskipTests 命令:
再进入到Jenkins容器内部查看,可以看到target下的jar包:
cd /var/jenkins_home/workspace/mytest/target
5.3.4 配置Publish发布&远程操作
jar包构建好之后,就可以根据情况发布到测试或生产环境,这里需要用到之前下载好的插件Publish Over SSH。
1、配置Publish Over SSH连接
配置Publish Over SSH连接测试、生产环境,这里配置的信息都是目标服务器的信息,目标服务器里必须要有docker
1、Publish Over SSH配置
【系统管理】——【系统配置】——【 Publish over SSH】
高级设置中,勾选密码,这个密码是目标服务器对应的密码,不是Jenkins的密码。这里是192.168.2.211的密码
注意:提前要创建目标服务器指定的目录。否则点击测试会报错,创建之后测试成功
2、CI操作(2)——配置任务的构建后操作
- Jenkins通过构建后操作配置,把maven构建好的jar包发布到目标服务器
- 配置构建后操作
选择把哪些文件推送到目标服务器上
立即构建任务,并去目标服务器目录下查看,这里是/usr/local/test
,目标目录在【系统管理】——【系统配置】——最下面的【Publish over SSH】中配置过
查看构建日志
构建成功后能看到目标服务器中目标目录下多了一个target文件,说明已经把内容推送到目标服务器了
总结
到这里,我们完成了镜像拉取,通过maven构建成jar包,通过publish over ssh 推送到目标服务器的工作。接下来我们还要增加对代码进行检测、推送到harbor仓库等操作。