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地址,按照文章逻辑来说应该是我的服务器IP
yum -y install git cd ~ && mkdir cicd && cd cicd git clone http://xx.xx.xx.xx:32080/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地址,按照文章逻辑来说应该是xx.xx.xx.xx:port
以上步骤就完成了让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 { agent any stages { stage('pull code') { steps { checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '5123b6b2-721f-4e54-90aa-392c55880150', url: 'http://101.43.196.155:32080/new_er/nginx.git']]) } } stage('build image') { steps { sh """ docker login -u admin -p aA081820 101.43.196.155:30002 docker build -t nginx:v2 . docker tag nginx:v2 101.43.196.155:30002/cicd/nginx:v2 docker push 101.43.196.155:30002/cicd/nginx:v2 docker rmi nginx:v2 docker rmi 101.43.196.155:30002/cicd/nginx:v2 """ } } } }
点击立即构建后,即可构建成功,实际应该需要构建10分钟这样,我这里之所以那么快,是因为我之前构建过,有缓存
登录harbor的web界面,即可看见刚刚构建好的镜像
到这,jenkins+docker+harbor+gitlab已经能够实现持续集成了。当然本文中的配置都是比较简单的,公司里面应用起来肯定不会那么简单,这里的初衷还是为了帮助小白快速入门这一技术。
本文来自博客园,作者:IT老登,转载请注明原文链接:https://www.cnblogs.com/nb-blog/p/18034908
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2019-02-26 Haproxy_haproxy.cfg