访次: AmazingCounters.com 次

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

 



 

posted @   IT老登  阅读(268)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-02-26 Haproxy_haproxy.cfg
访次: AmazingCounters.com 次
点击右上角即可分享
微信分享提示