一、参考:
Jenkins+harbor+gitlab+k8s 部署maven项目
二、环境介绍
操作系统 | ip | 角色 | 版本 | 访问地址 |
CentOS7 64位 | 192.168.254.128 | k8s node | 1.17.4-0 | |
CentOS7 64位 | 192.168.254.129 | k8s node | 1.17.4-0 | |
CentOS7 64位 | 192.168.254.130 | k8s master | 1.17.4-0 | |
CentOS7 64位 | 192.168.254.131 | harbor | v2.0.0 | |
CentOS7 64位 | 192.168.254.132 | gitlab | 13.0.3-ce.0.el7 | |
CentOS7 64位 | 192.168.254.134 | jenkins | 2.239 |
注意:Jenkins安装之后,还需要做以下配置。否则无法实现本文章的功能!!!
三、gitlab创建项目
- 登录gitlab,创建一个项目springcloud-demo
- 点击 设置–> 成员:添加2个成员(如果没有,需要先创建),一个是jenkins用户,用来拉取代码的。一个是开发用户,用来提交代码的。
注意:我的账号,权限要高一些,可以直接提交到master分支。 - 将本地代码提交到刚刚创建的项目中
四、harbor 创建用户和项目
- 登录到harbor后台,点击创建用户
- 创建项目
这是创建好的项目 - 添加项目成员
点击创建好的项目->成员->+用户
将刚刚创建的用户拉进来,注意分配合适的角色
五、jenkins修改默认用户
使用jenkins执行shell命令时,可能会出现权限不足的情况。
查看jenkins默认用户
vi /etc/sysconfig/jenkins
把JENKINS_USER值改为root用户,重启jenkins
service jenkins restart
六、jenkins和k8s master做ssh免密
因为jenkins需要登录到k8s master,执行一些k8s命令。
七、jenkins登录harbor
- 修改Jenkins服务器上的docker配置文件,添加harbor地址
vim /etc/docker/daemon.json
- 添加内容如下:
"insecure-registries": ["192.168.254.131"]
- 重启docker
systemctl restart docker
- 测试登录
[root@localhost default]# docker login 192.168.254.131 -u jenkins -p Jenkins@1234
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[root@localhost default]#
八、jenkins创建maven项目
- 新建任务
- 设置参数化构建
- 设置源代码
输入仓库下载地址,选择用户root - 设置maven构建命令
- jar包打包成docker镜像并推送
build构建后将源码打成了jar包,需要再执行shell将jar包构建成docker镜像并推送到harbor - 将下面的内容,贴过去
#!/bin/bash
jarName=eurekasvr-0.0.1-SNAPSHOT.jar
jarFolder=$JOB_NAME
harborPro=springcloud-demo
projectName=$JOB_NAME
docker_path=${WORKSPACE}
cp ${WORKSPACE}/target/${jarName} ${docker_path}
chmod 755 ${WORKSPACE}/deployment/deploy_docker.sh
bash -x ${WORKSPACE}/deployment/deploy_docker.sh ${harborPro} ${projectName} ${docker_path} ${jarName}
- k8s master 操作
重新部署k8s应用
chmod 755 ${WORKSPACE}/deployment/reboot_app.sh
bash -x ${WORKSPACE}/deployment/reboot_app.sh