基于Docker配置的Jenkins的学习笔记


写在前面:
这次通过公司项目的自动化部署来以小见大的介绍一下我的收获,因为涉及到公司细节所以以下所有步骤都是用空项目来演示的。
首先感谢我们美丽的算法工程师@燕妮,附上 网易云课堂的链接,是免费的 Jenkins践行持续集成与安装实战 。
内容是Git+Docker+Jenkins三剑合璧实现DevOps开发模式,从安装Jenkins到Docker配置等等都讲解的很全面,强烈安利一下~
本篇的重点只在于Jenkins使用过程中的各种配置和踩坑填坑。

一:持续自动化集成介绍

1.什么是DevOps模式

目前企业面临的产品开发周期短、需求变化大,故而软件开发模式也经历了传统瀑布模型-》敏捷开发模型-》DevOps的变化,三者的优劣一目了然。

模型名称模型特点模型缺陷
传统瀑布模型完整/清晰/固定的产品定义不可以随时修改需求
敏捷开发模型需求频繁变化+需求快速开发流程繁琐从而导致人为执行无法严格遵守
DevOps需求频繁变化+开发需要敏捷+操作需要敏捷流程处理自动化,最大限度的减少人为干预

图片来源网易云课堂--艾编程老师,链接放在文章开头了
图片来源网易云课堂

Jenkins可以轻松包办从本地push后一直到成功部署的整个环节,这样对于持续集成有两大好处:

  1. 将测试时间提前提前再提前
  2. 将集成过程交给自动化管理

2.Jenkins服务器的职能

在本次项目中,我们的架构师专门调拨了一台服务器给Jenkins自动化部署,它需要实现三个功能:
1. 从远程仓库(Git)上实时拉取代码。
2. 将更新代码打包(tar包)并且推送到已经配置好Docker环境的远程服务器上。
3. 在远程服务器上基于Docker容器部署服务。

二:通过新项目介绍Jenkins

在介绍任务之前有一点不得不提:
Jenkins是在线的项目自动化部署平台,它的很多功能都是基于加载插件的形式来实现的。除初始化安装过程中的基本插件之外(文章首页的链接课程里有详细的安装流程,不再赘述),加入什么新的插件,这完全是按照项目需求来的。
Jenkins插件的增删改查都在系统管理–》插件管理来实现。如果在使用过程中有任何一个模块的某个选项没有出现,那多半是因为没有安装相关插件或者没有及时更新插件所导致的。
在这里插入图片描述

1.构建新任务

进入Jenkins界面—》新建任务—》构建一个自由风格的软件项目。
在这里插入图片描述

2. General

如题,这是从整个项目构建的层面实现某些功能的模块。根据项目的需求自行添加。
在这里插入图片描述

3.源码管理

我使用的是Git作为代码仓库,有项目内和项目外两种配置方式。
在项目里可以通过用户名+密码的方式来完成代码仓库的调用:
在这里插入图片描述

在项目外可以通过系统管理–》全局配置–》添加SSH密钥互信的方式来完成代码仓库的调用:
在这里插入图片描述
需要特别注意的是这两种认证方法不可以同时存在,否则会触发403。
如果在全局中配置好了就不需要在项目里再配置一次了,直接选取对应仓库就好了。

4.构建触发器

这一模块主要是为实时构建服务,钩子的创建就在这个模块里。我选取的是"Build when a change is pushed to GitLab… “,安装的插件是"Generic Webhook Trigger Plugin”:
在这里插入图片描述

5.构建环境

项目在构建的过程中有环境配置的需求,例如我需要部署Java Spring Cloud项目,就需要引入对应的Maven配置文件。

1.安装插件

配置文件需要先加载到全局变量中,首先需要下载相关插件 Config File Provider Plugin并安装。

2.载入配置文件

之后进入全局配置–》Managed files–》Add a new Config,复制粘贴并保存配置文件。这时候返回Config File Management内后可以看到之前保存的配置文件。
在这里插入图片描述

3.应用于项目中

在项目的构建环境中,我们可以选择已经添加到全局配置的配置文件。
勾选Provide Configuration files–》Add file即可
在这里插入图片描述

6.构建

构建模块就是生成文件包的环节,这里我使用的是shell脚本来生成tar包,优点是脚本指令暴露在外面,方便其他成员理解和修改部署环节。Jenkins也提供了相当多其他方式的构建指令实现方法,例如载入python脚本文件等。

在这里插入图片描述

7.构建后操作

这一模块可以实现连接远程服务器–》传输文件–》运行部署等等功能,这里我选择的是"Send build artifact over SSH",也就是通过两台服务器之间添加SSH互信来实现文件传输运行。

类比于 5.构建环境的操作流程,这里也分为三步。

1.安装插件

进入插件管理–》添加 Publish Over SSH插件

2.全局设置

进入系统配置–》Publish Over SSH,生成公钥私钥后,添加私钥来进行SSH配置。
需要注意的是最后的Remote Directory是针对目标服务器的根目录的相对路径,在后续构建话操作时Jenkins会自动进行填充,切记不要重复书写!!!

3. 项目内填充

之前的操作都正确完成后,Jenkins会自动添加对应的服务器地址。
在这里插入图片描述

三:参考一览

艾编程:Jenkins践行持续集成与安装实战
linxc008:Linux之间配置SSH互信(SSH免密码登录)
Jager’s Note:Linux配置SSH公钥认证与Jenkins远程登录进行自动发布
在路上的白羊:Jenkins插件下载镜像加速
Onehee:Jenkins构建完成后自动部署到指定服务器
doraman:Jenkins页面操作提示 “No valid crumb was included in the request”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值