IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 自动化运维之CI/CD——持续集成与持续交付(2) -> 正文阅读

[系统运维]自动化运维之CI/CD——持续集成与持续交付(2)

一、持续集成与持续交付(2)

1.jenkins的使用

1.新建项目

在这里插入图片描述
在这里插入图片描述

2.jenkins和gitlab的整合

现在想把项目代码从项目集群中拉过来,和jenkins做整合,
在这里插入图片描述

在clone时 出现上述问题,是因为server3上没有下载git:

[root@server3 jenkins]# yum install -y git

下载git后重新加载git仓库,又出现了如下图所示的问题,这是因为ssh免密认证没做:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
此时,gitlab上的公钥有两个 一个是server2的 一个是server3的。当然 你也可以把server2的私钥传给server3(jenkins)
在这里插入图片描述

然后 上传私钥:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Git提交代码到gitlab,jinkens轮询检测到代码仓库的变更,触发构建。
在这里插入图片描述
(2)构建触发器,就是什么时候做上面我们调试的动作:

轮询< * * * * * >表示每分钟从gitlab上刷新一下

下面当然会提示你 是不是输错了 毕竟频率太快了,但是为了演示 我们可以先设置成这样:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)当然,我们希望当gitlab发生变更时 自动触发jenkins。我们可以如下设置(添加插件):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下图选择红框框住的,下面有一个高级选项,。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
然后添加webhook
在这里插入图片描述
此时,我们在gitlab端做一个测试,jenkins端会主动收到
在这里插入图片描述
jenkins就会收到:
在这里插入图片描述
在终端测试:
在gitlab客户端的项目下,新建一个文件并推送到gitlab中,检查jenkins自动同步。
由下图可以看出,随着gitlab的改变,jenkins也会收到消息。这是实时触发的

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

我们在这里回顾一下gitlab整合jenkins ,
user -> git push -> gitlab -> trigger webhook -> jenkins

2.jenkins构建

Jenkins自动构建docker镜像,并上传至harbor仓库
在这里插入图片描述
在这里插入图片描述

在jenkins主机上安装docker:(具体参考之前的博客)

启动之前安装的harbor服务器
?
安装docker用到的镜像源已在<docker-ce.repo>和<Centos7.repo>中写好(参考之前的内容),可以直接安装,然后修改网桥策略,生效后启动docker。
?
设置解析。 (server3 上 设置仓库 解析 reg,westos,org)
?
复制证书。复制阿里云的加速器。
scp -r certs.d/ server3:/etc/docker/
scp daemon.json server3:/etc/docker/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改gitlab的Dockerfile文件,令其自动触发给jenkins,查看构建过程如下:
在这里插入图片描述

构建完成后,在jenkins的本地docker镜像中可以查看到镜像
在harbor仓库中也可以看到构建成功的镜像

在这里插入图片描述
在这里插入图片描述

3.项目自动集成与交付

上面的实验 我们将dockerfile文件push到gitlab并触发jenkins自动构建将其上传到habor仓库,
那可以把下面的实验理解成 做一个测试,就是把之前上传的镜像拉取下来,测试一下 ,看看能不能跑。

顺便要在这里提一嘴,持续集成与持续交付的意义。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.接下来,让整个流程自动的跑一边:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改此处错误:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

如此一来,便实现了整个项目的持续集成与持续交付。

我们再来回顾一遍流程:
1.user 先push项目到gitlab
2.gitlab触发jenkins build and push 镜像到 habor
3.此时触发另一个项目 docker_project_test ,来拉取镜像 并运行容器。

2.分布式结构实现项目自动集成与交付

jenkins上会有很多任务,不能在一个结点上(server3)既干构建,又干测试等等。应该把任务分布到不同的结点上去操作。

实验操作如下:

实验需要四台虚拟机,分别为server1/2/3/4,server1为harbor仓库,server2为git客户端,server3为jenkins客户端(做构建用),server4为待部署(交付)的远程主机(做测试用)。

#在server3上
scp Centos7.repo docker-ce.repo root@172.25.254.4:/etc/yum.repos.d/        //复制docker源
 
scp /etc/sysctl.d/docker.conf root@172.25.254.4:/etc/sysctl.d/        //复制网桥配置
 
cp -r /etc/docker/certs.d/ /etc/docker/daemon.json root@172.25.254.4:/etc/docker/        //复制加速器及证书
#在server4上
yum install -y docker-ce-20.10.12-3.el7.x86_64        //安装docker
sysctl --system                            //载入网桥配置
vim /etc/hosts                                //设置harbor仓库解析
vim /etc/docker/daemon.json                 //更改仓库为本地仓库
systemctl start docker                        //启动docker
docker info 

下面迎来正题:
在这里插入图片描述
在这里插入图片描述
接下来 解决jenkins主机和其他机器的认证问题:

在这里插入图片描述
像下图这么设置全局凭证,虽然方便,不用考虑权限问题,但是不安全,这里我们方便实验,先这么做。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
server4的认证问题得以解决,然后是docker_project_test的设置:

由于我们已经在server4的daemon.json文件中设置了仓库位置,所以较之前的命令有所改变:
在这里插入图片描述

测试:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:35:42  更:2022-03-21 21:36:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:50:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码