说明
通过本文章,您可以轻松入门cicd过程。本地测试环境为springboot微服务项目。用户提交代码到gitlab,触发jenkins拉取gitllab上的代码,然后完成编译构建成jar包,同步完成sonarsqube代码质量检测。然后在jenkins内部完成生成镜像,并将镜像推送到harbor仓库中,然后通过K8s完成服务的部署。
依赖环境部署
环境准备
使用环境说明
使用的虚拟机环境centos7.9,使用vmware安装
同步主机时区为亚洲,并同步时间
[root@linux-node ~]# echo "ZONE=Asia/Shanghai" >> /etc/sysconfig/clock
[root@linux-node ~]# rm -f /etc/localtime
#链接到上海时区文件
[root@linux-node ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
关闭防火墙和selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
设置yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
安装docker
创建数据目录将数据持久话到该目录下,以便后期好维护
mkdir -p /data
安装maven
gitlab安装部署
harbor安装部署
jenkins安装部署
sonarqube部署
k8s部署
部署过程略
创建java工程并测试将代码上传到gitlab仓库
gitlab上创建项目
创建springboot工程,并将代码提交到hello-test工程下
编写Jenkinsfile的方式
流水线语法
我们在编写jenkins流水线脚本时可以先将框架写好,然后再补齐内容。
pipeline {
//指定任务在哪个集群节点上执行
agent any
//声明环境变量,方便后面使用
environment {
key='value'
}
stages {
stage('拉取git仓库代码') {
steps {
echo '拉取git仓库代码-SUCCESS'
}
}
stage('通过maven构建项目') {
steps {
echo '通过maven构建项目-SUCCESS'
}
}
stage('通过sonarqube做代码质量检测') {
steps {
echo '代码质量检测-SUCCESS'
}
}
stage('通过docker制作自定义镜像') {
steps {
echo 'docker制作自定义镜像-SUCCESS'
}
}
stage('将自定义镜像推送到harbor仓库中') {
steps {
echo '推送到harbor仓库-SUCCESS'
}
}
stage('通过publish over ssh通知目标服务器') {
steps {
echo '通知目标服务器-SUCCESS'
}
}
}
}
生成jenkins 流水线脚本
点击下方的流水线语法
例如:我要从git上下载代码
下面填好之后
点击生成流水线脚本
把生成的脚本粘贴到对应的步骤下
这样就完成了流水线代码的生成。
可以在对应的stage处查看对应步骤的日志。
使用git维护Jenkinsfile文件
在gitlab一个项目中创建Jenkinsfile,可以在一个单独的项目中,也可放到对应项目中
在项目目录下创建Jenkinsfile文件,名称必须是这样的。J为大写的。
将内容放到该文件中