集成Jenkins Harborn pipeline任务
作者 |林安杰
来源 | urlify.cn/AJzuyu
一、计划在jenkins中构建流水线任务时 , 从GitLab当中拉取代码 , 通过maven打包 , 然后构建dokcer镜像 , 并将镜像推送至harbor当中 。 Jenkins中含开发、测试、生产视图 , 开发人员可以对开发、测试的任务具有权限;测试人员仅对测试任务具有权限;管理员具有所有权限 。
二、jenkins所需插件Pipeline、docker-build-step、Docker Pipeline、Docker plugin、docker-build-step、Role-based、Authorization Strategy
在jenkins中将上诉插件安装好 。
三、Jenkins设置权限(开发、测试、生产)
- "系统管理"--->"全局安全配置"
- "系统管理"--->"Manage and Assign Roles"
- 选择"Manage Roles" , 在"Global roles"中添加一个user角色 , 角色权限可以自己调整 , 我这里设置了该角色的所有读权限 。
- 编辑"Item roles" , 添加三个项目角色 , 分别代表开发、测试、生产 , 并设置权限 。 根据正则 , 若任务名称为dev或者DEV开头 , 则该项目属于开发组项目 。 编辑完成之后点击应用 , 保存 。
- 点击保存后 , 回到"Manage and Assign Roles"页面 , 点击"系统管理"--->"管理用户"--->"新建用户";创建两个用户分别代表开发人员 , 测试人员;生产人员就用管理员用户 。
- 用户创建完成之后 , 点击"系统管理"--->"Manage and Assign Roles"-->"Assign Roles"编辑完成之后 , 点击应用 , 保存 。
- 创建三个新的视图 , 并按照前面的正则在分别在三个视图创建一个空的流水线任务
- 权限验证admin用户登录:开发人员登录:测试人员登录:
- 登录至Jenkins容器当中
#以root用户登录 , 避免后面下载maven时权限不足[root@node03 docker-jenkins]# docker-compose exec -u root jenkins /bin/bash root@8286c620ab88:/# java -versionopenjdk version "1.8.0_242"OpenJDK Runtime Environment (build 1.8.0_242-b08)OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)root@8286c620ab88:/# whereis javajava: /usr/local/openjdk-8/bin/java
登录到容器中发现jdk已安装;不用再安装jdk 。- 安装maven , 我这里将maven安装至容器中/usr/local/maven3.6
root@8286c620ab88:/# cd /usr/local/root@8286c620ab88:/usr/local# wget #下载成功后解压root@8286c620ab88:/usr/local# tar xvf apache-maven-3.6.3-bin.tar.gz#重命名root@8286c620ab88:/usr/local# mv apache-maven-3.6.3/ maven3.6
- 设置环境变量
root@8286c620ab88:/# vim /etc/profile
若没有vi或者vim命令 , 可以先安装:root@8286c620ab88:/# apt-get updateroot@8286c620ab88:/# apt-get install vim
在文件末尾加上如下内容export JAVA_HOME=/usr/local/openjdk-8export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/binexport M2_HOME=/usr/local/maven3.6export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
- 建议把JAVA_HOME和M2_HOME记住 , 待会需要在Jenkins页面中设置
root@8286c620ab88:/# source /etc/profileroot@8286c620ab88:/# java -versionopenjdk version "1.8.0_242"OpenJDK Runtime Environment (build 1.8.0_242-b08)OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)root@8286c620ab88:/# mvn -vApache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)Maven home: /usr/local/maven3.6Java version: 1.8.0_242, vendor: Oracle Corporation, runtime: /usr/local/openjdk-8/jreDefault locale: en, platform encoding: UTF-8OS name: "linux", version: "3.10.0-862.14.4.el7.x86_64", arch: "amd64", family: "unix"#设置完成之后即可退出容器
- 为避免在jenkins容器中使用docker命令时权限不足 , 我这里为了方便 , 使用了最简单粗暴的方法 , 在宿主机下使用如下命令修改权限
[root@node03 data]# chmod 777 /var/run/docker.sock
其他方法可以参考:在docker容器中调用和执行宿主机的docker- 在Jenkins页面中配置JDK和Maven , 在Jenkins页面中选择"系统管理"-->"全局工具配置"
文章插图
文章插图
编辑完成之后 , 点击应用 , 保存 。
五、GitLab中创建测试项目
- 我这里选择从模板中创建一个Spring项目 , 项目名称自拟
- 我自己修改了部分pom文件以及Dockerfile文件pom文件:【集成Jenkins Harborn pipeline任务】"" xmlns:xsi="" xsi:schemaLocation=" ">
4.0.0
- 联盟|天津半导体集成电路人才联盟成立
- 科技|万业企业控股孙公司北京凯世通拟向芯成科技出售3款集成电路设备
- 软件|山西出台政策奖励集成电路和软件企业
- 高通发布骁龙888芯片,集成X60 5G芯片
- 高通骁龙888正式发布 首发Cortex X1架构集成5G基带
- 搭建私有Sentry日志收集系统并集成到springboot
- 从零搭建vue + jenkins 超详细教程
- 你喜欢的 Go 第三方库:一步为系统集成可视化实时运行时统计
- 集成式|多模块集成式工具 燚博云提升薪管效率
- 柯尼卡美能达最新的小型柔性OLED照明面板可与NFC集成