持续集成与持续交付 2 (jenkins持续集成、结合gitlab建立任务)

一、jenkins简介

1、Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
2、Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
3、CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
在这里插入图片描述
CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。
在这里插入图片描述

二、jenkins持续集成

1.jenkins安装

准备新虚拟机lr3(分配至少2G内存)确保可以上网
请添加图片描述
一共需要下载三个文件,国内镜像网站下载软件包:点击
我们下载以下版本的jenkins
请添加图片描述
真机将jdk安装包发送给lr3
请添加图片描述
接着我们需要下载jenkins安装所需的一个依赖项daemonize;
首先安装 epel-release
请添加图片描述
安装 daemonize,这里加入两个参数;
yum-downloadonly用于下载所需要的软件包而并不真正的安装;
–downloaddir=dir/:表示将所下载的安装包放到dir目录(自定义)
请添加图片描述
真机将daemonize安装包传给lr3
请添加图片描述
lr3安装jdk、daemonize 和jenkins
请添加图片描述
请添加图片描述
开启服务
请添加图片描述
可以看到开放的8080端口
请添加图片描述
网页访问http://172.25.36.3:8080,第一次登陆初始化较慢
请添加图片描述
进入目录,查看初始密码
请添加图片描述
输入初始密码
请添加图片描述
选择插件安装
请添加图片描述
先不要选择插件,因为没有更新国内的下载源,速度会很慢
请添加图片描述
直接选择使用admin账户继续
请添加图片描述
保存并完成
请添加图片描述
修改密码
请添加图片描述
修改时区
请添加图片描述
设置完成后需要重新输入密码
请添加图片描述

2.插件安装

网页中在dashboard界面中选择manage jenkins,点击插件管理
在这里插入图片描述
选择advanced,这里要设置插件源地址
请添加图片描述
安装wget,先测试哪个源的速度比较快
请添加图片描述
通过下面命令测试哪个插件源速度快
请添加图片描述
我这里ustc快,因此更改镜像下载地址为ustc
在这里插入图片描述
创建更新源文件,并给定权限
请添加图片描述
lr3切换到/var/lib/jenkins目录下,查看hudson.model.UpdateCenter.xml文件内容,可以看到插件源已经修改成了ustc的源
在这里插入图片描述
对照网站,更改镜像拉取地址为ustc,点击测试
ustc:https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/ustc/update-center.json
腾讯:https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/tencent/update-center.json
清华大学:https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/tsinghua/update-center.json
阿里云:https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/aliyun/update-center.json
华为云:https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/huawei/update-center.json

在这里插入图片描述
然后可以下载中文插件
请添加图片描述
成功
请添加图片描述
安装流水线插件,Pipeline是一组插件,让Jenkins可以实现持续交付管道的落地和实施
请添加图片描述
成功
请添加图片描述

三、结合gitlab建立任务

1.轮询方式监控gitlab

创建一个项目
请添加图片描述
项目名为demo,选择自由风格
请添加图片描述
为项目配置gitlab私有仓库,安装gitlab插件,jenkins连接Gitlab代码仓库
请添加图片描述
可以看到新建的项目
请添加图片描述
Jenkins本机lr3安装git工具
请添加图片描述
创建密钥、查看公钥
请添加图片描述
把公钥给gitlab,使jenkins可以调用gitlab
请添加图片描述
请添加图片描述
复制私钥
请添加图片描述
配置demo项目
请添加图片描述
在源码管理一栏添加私有仓库地址
请添加图片描述
接下来添加证书
请添加图片描述
使用ssh的方式
在这里插入图片描述
输入描述、用户名称,并将刚才复制的私钥粘贴在此处
请添加图片描述
选择刚设定的证书
请添加图片描述
选择分支默认为master(与gitlab中一致)
请添加图片描述
请添加图片描述
选择触发器的类型为轮询,* * * * * 表示每分钟查看一次gitlab的代码变化,执行的命令为简单的查看
请添加图片描述
一分钟后查看控制台
请添加图片描述
输出正常
请添加图片描述
在/var/lib/jenkins/workspace就可以同步gitlab的文件
请添加图片描述
在lr2更新仓库,新建一个index.html文件,添加提交上传;
这里提示我们要配置邮箱和姓名
请添加图片描述
进行上传
请添加图片描述
在页面已经可以看到提交的内容了
请添加图片描述
在Dashboard的demo项目中,查看构建历史
请添加图片描述
控制台可以看到成功了
请添加图片描述
一分钟以后,lr3在/var/lib/jenkins/workspace就可以同步gitlab的文件
请添加图片描述

2.实时监控gitlab

在gitlab中允许外发请求
请添加图片描述
请添加图片描述
进入jenkins,更换触发器类型,有变动就重新拉取;
可以看到URL地址;
请添加图片描述
打开高级,可以看到生成的令牌
请添加图片描述
进入github的demo项目,设置webhooks,填写jenkins地址和令牌
请添加图片描述
此时可以看到配置已经生效,进行测试
请添加图片描述
在jenkins端,可以看到控制台输出
请添加图片描述
lr2将新的内容写入到index.html中
请添加图片描述
然后提交改动并上传
请添加图片描述
在页面中查看,可以看到控制台输出
请添加图片描述
请添加图片描述
lr3的jenkins实现实时同步,可以看到改动
请添加图片描述

3.结合dockfile自动构建镜像并上传到本地仓库registry

lr2编写dockerfile文件并添加提交上传
在这里插入图片描述
在这里插入图片描述
因为jenkins实时同步lr3也看到dockerfile,lr3安装docker并启动
在这里插入图片描述
lr3执行docker info,出现警告
在这里插入图片描述
因此lr3需要修改内核参数并重载
在这里插入图片描述
lr3准备好所需要的镜像myapp
在这里插入图片描述
接下来在jenkins页面安装docker插件,选择Docker Build and Pubish
在这里插入图片描述
lr3上传registry本地仓库镜像,并后台启动,开启5000端口(搭建本地仓库)
在这里插入图片描述
由于jenkins程序运行时是以jenkins身份运行的,other对于socker没有访问权限;
因此需要赋予权限,使得jenkins能用套接字使用docker
在这里插入图片描述
接下来,lr3配置项目demo,选择docker构建,设定上传镜像的名字和标签(就是构建版本号),使用docker套接字,设定仓库地址
在这里插入图片描述
高级里面,注意关闭强制拉取,保存配置
在这里插入图片描述
点击右上方绿色按钮进行手工触发
在这里插入图片描述
查看控制台输出正常
在这里插入图片描述
在lr3测试,镜像已上传到registry
在这里插入图片描述

4.结合dockfile自动构建镜像并上传镜像到网络仓库harbor

lr3将上个实验构建的registry仓库删除;
在这里插入图片描述
打开虚拟机server1(之前部署的habor仓库),server1将自己docker目录下的cert.d发送至lr3的docker目录
在这里插入图片描述
lr3修改仓库镜像地址并重启docker服务,为docker.sock文件设置权限,使jenkins通过套接字使用docker,然后添加本地域名解析(注意重启docker服务后,socket权限会还原需要重新赋予777权限)

docker info可以查看到仓库
在这里插入图片描述
进入jenkins,修改demo项目的配置,上传镜像的名称要对应harbor仓库的目录,标签和构建版本号一致,设定套接字,修改仓库地址,由于harbor是加密认证的,所以还需要证书
在这里插入图片描述
添加证书凭据,输入harbor仓库的用户名和密码
在这里插入图片描述
选择证书,保存,执行
在这里插入图片描述
进行手工触发,查看控制台输出正常(第19次构建)
在这里插入图片描述
在harbor仓库查看镜像的标签也是19
在这里插入图片描述

5.从harbor仓库拉取镜像并运行

新建项目docker
在这里插入图片描述
配置项目docker,修改触发器类型,当前面的demo项目稳定运行后,运行docker项目,具体操作是运行一个容器,点击保存
在这里插入图片描述
手工触发后,控制台可以看到配置成功
在这里插入图片描述
lr3测试访问可以看到myapp正在运行
在这里插入图片描述
jenkins修改docker项目的配置,执行命令改为删除以前的镜像,运行最新版本的镜像,避免冲突
在这里插入图片描述
lr2修改dockerfile文件为v2版本,添加提交上传至gitlab代码仓库(测试镜像版本更新)
在这里插入图片描述
进行手工触发,查看控制台输出成功
在这里插入图片描述
lr3再次测试,变为v2版本
在这里插入图片描述

6.SSH的方式对远程节点jenkins操作

lr3是jenkins的matser节点工作,不想把任务部署在lr3上,可以使用ssh的方式,将任务部署到另一台虚拟机lr4上。
新创建一台虚拟机lr4,安装docker-ce,开启docker,server1发送证书,内核参数docker.conf文件,damen.json文件(同之前部署docker操作)
在这里插入图片描述
jenkins添加ssh插件
在这里插入图片描述
jenkins系统设置
在这里插入图片描述
添加远程主机lr4,端口为22,添加jenkins凭据
在这里插入图片描述
在这里插入图片描述
凭证类型选择用户名和密码,输入ssh登陆操作的服务器的账号和密码
在这里插入图片描述
凭证配置完成
在这里插入图片描述
回到docker项目,修改配置,不用之前的shell,使用远程的shell,命令还是运行容器,保存,构建
在这里插入图片描述
查看控制台输出,镜像拉取成功
在这里插入图片描述
lr4测试访问本地容器正常运行,查看镜像信息
在这里插入图片描述
当本地已经存在指定docker镜像时,不会在仓库再次拉取镜像;
将执行命令改为删除以前的容器,再删除对应的镜像,然后运行最新版本的镜像
在这里插入图片描述
可以看到控制台显示找不到镜像,将重新从仓库拉取镜像
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins是一个开源的持续集成交付工具,它可以帮助开发团队自动化构建、测试和部署软件。下面是Jenkins实现持续集成交付的一般步骤: 1. 安装和配置Jenkins:首先,你需要在服务器或本地机器上安装Jenkins,并进行基本的配置,如设置管理员账号和插件管理等。 2. 创建项目:在Jenkins中,你可以创建一个或多个项目来管理你的软件开发过程。每个项目都有自己的配置和构建脚本。 3. 配置源代码管理:在项目配置中,你需要指定你的源代码存储库(如Git、SVN等),并设置访问凭证。 4. 设置构建触发器:你可以设置触发器来决定何时触发构建过常见的触发方式包括定时触发、代码提交发、其他项目构建完成触发等。 5. 构建过程:在构建过程中,你可以定义一系列的构建步骤,如编译代码、运行单元测试生成文档等。这些步骤可以通过Jenkins提供的插件来实现。 6. 测试和质量控制:在构建过程中,你可以集成各种测试工具和静态代码分析工具,以确保代码的质量和稳定性。 7. 构建部署:一旦构建成功,你可以将构建产物部署到目标环境中,如测试环境、预发布环境或生产环境。你可以使用Jenkins提供的插件来实现自动化部署。 8. 监控和报告:Jenkins提供了丰富的监控和报告功能,你可以查看构建历史、构建日志、测试结果等信息,以便及时发现和解决问题。 9. 扩展和定制:Jenkins具有强大的扩展性,你可以根据自己的需求安装和配置各种插件,以满足特定的集成和交付需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值