Jenkins+Argocd+Kubernetes+Gitlab+Harbor搭建CI/CD流程(六)之持续集成

前面我们已经安装好了jenkins、gitlab和harbor,同时也搭建好了k8s集群,根据前面基础,我们已经可以实现持续集成了,提前说好,这一章节是本系列的重点,相对前面的章节来说也是比较复杂,内容也是比较多的,不过你放心,后面的CD流程会比较简单,熬过这一章节,后面的路就相对舒服一点了

一、编写“代码”,提交到gitlab

正如本系列的第一篇文章所说,本次需要跑通的是一个简单易懂nginx的例子,编写“代码”的步骤就是编写nginx中index.html,当然公司里实际情况肯定不是这样的,这只是为了帮助刚入门的小伙伴熟悉、跑通CI/CD流程而已

首先登录gitlab的web界面,先在gitlab上创建一个组,然后再创建一个项目

创建组

然后拉下去,点击Create group

创建项目

 复制以下的网址,我打码的地方是一个IP地址,按照文章逻辑来说应该是192.168.100.100

回到192.168.100.100这台服务器上

yum -y install git
cd ~ && mkdir cicd && cd cicd
git clone http://192.168.100.100:88/cicd/nginx.git
cd nginx
touch index.html
echo "vol.1" > index.html
touch Dockerfile
echo "FROM nginx:latest" > Dockerfile
echo "COPY index.html /usr/share/nginx/html" >> Dockerfile
git add index.html
git add Dockerfile

第一次执行git commit之前需要先执行以下指令,你就改成你的邮箱和你的名字就行

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

执行git push origin master的时候会提示输入用户的账号密码,就输入root用户和root的密码就行 

git commit -m "vol.1"
git push origin master

 登录gitlab的web界面,可以看到刚刚上传的文件

二、在jenkins上添加相关插件

选择好这两个插件之后点击Install without restart

三、在jenkins上添加gitlab-api token

先在gitlab的web界面上获取gitlab-api token

回到jenkins的web界面上添加凭据

四、创建jenkins流水线项目

在gitlab的web页面上获取项目URL, 这里打码的地方是一个IP地址,按照文章逻辑来说应该是192.168.100.200

 这里打码的地方是一个IP地址,按照文章逻辑来说应该是192.168.100.200

以上步骤就完成了让jenkins在gitlab上拉取代码的步骤,jenkins会把gitlab上的index.html和Dockerfile拉取到它自己的工作目录中,然后进行下面的步骤,下面的步骤就是构建镜像,正常公司里接下来的步骤应该是打包再构建镜像,但本次例子比较简单易懂,所以就没有打包这一步骤了,直接构建镜像

在jenkins服务器上执行以下指令,主要是授权给jenkins用户,不然拉不了镜像

chmod 666 /etc/sudoers
echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
chmod 440 /etc/sudoers

在原来的pipeline脚本基础上添加以下这段话,这个步骤作用是,登录先前创建的harbor仓库,构建镜像,改标签,上传镜像到harbor,删除本地镜像

 完整pipeline脚本 

pipeline {
    agent any

    stages {
        stage('pull code') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[url: 'http://192.168.100.200:88/cicd/nginx.git']]])
            }
        }
        stage('build image') {
            steps {
                sh """
                sudo docker login -u chezonghua -p Harbor12345 192.168.100.100:888
                sudo docker build -t nginx:v1 .
                sudo docker tag nginx:v1 192.168.100.100:888/cicd/nginx:v1
                sudo docker push 192.168.100.100:888/cicd/nginx:v1
                sudo docker rmi nginx:v1
                sudo docker rmi 192.168.100.100:888/cicd/nginx:v1
                """
            }
        }
    }
}

点击立即构建后,即可构建成功,实际应该需要构建10分钟这样,我这里之所以那么快,是因为我之前构建过,有缓存

登录harbor的web界面,即可看见刚刚构建好的镜像 

到这,jenkins+docker+harbor+gitlab已经能够实现持续集成了。当然本文中的配置都是比较简单的,公司里面应用起来肯定不会那么简单,这里的初衷还是为了帮助小白快速入门这一技术。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值