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

基于Jenkins搭建DevOps环境的学习笔记

  • 一:持续自动化集成介绍
    • 1.什么是DevOps模式
    • 2.Jenkins服务器的职能
  • 二:通过新项目介绍Jenkins
      • 1.构建新任务
      • 2. General
      • 3.源码管理
      • 4.构建触发器
      • 5.构建环境
        • 1.安装插件
        • 2.载入配置文件
        • 3.应用于项目中
      • 6.构建
      • 7.构建后操作
        • 1.安装插件
        • 2.全局设置
        • 3. 项目内填充
  • 三:参考一览

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

一:持续自动化集成介绍

1.什么是DevOps模式

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

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

基于Docker配置的Jenkins的学习笔记_第1张图片
图片来源网易云课堂

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

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

2.Jenkins服务器的职能

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

二:通过新项目介绍Jenkins

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

1.构建新任务

进入Jenkins界面—》新建任务—》构建一个自由风格的软件项目。
基于Docker配置的Jenkins的学习笔记_第3张图片

2. General

如题,这是从整个项目构建的层面实现某些功能的模块。根据项目的需求自行添加。
基于Docker配置的Jenkins的学习笔记_第4张图片

3.源码管理

我使用的是Git作为代码仓库,有项目内和项目外两种配置方式。
在项目里可以通过用户名+密码的方式来完成代码仓库的调用:
基于Docker配置的Jenkins的学习笔记_第5张图片

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

4.构建触发器

这一模块主要是为实时构建服务,钩子的创建就在这个模块里。我选取的是"Build when a change is pushed to GitLab… “,安装的插件是"Generic Webhook Trigger Plugin”:
基于Docker配置的Jenkins的学习笔记_第7张图片

5.构建环境

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

1.安装插件

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

2.载入配置文件

之后进入全局配置–》Managed files–》Add a new Config,复制粘贴并保存配置文件。这时候返回Config File Management内后可以看到之前保存的配置文件。
基于Docker配置的Jenkins的学习笔记_第8张图片

3.应用于项目中

在项目的构建环境中,我们可以选择已经添加到全局配置的配置文件。
勾选Provide Configuration files–》Add file即可
基于Docker配置的Jenkins的学习笔记_第9张图片

6.构建

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

基于Docker配置的Jenkins的学习笔记_第10张图片

7.构建后操作

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

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

1.安装插件

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

2.全局设置

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

3. 项目内填充

之前的操作都正确完成后,Jenkins会自动添加对应的服务器地址。
基于Docker配置的Jenkins的学习笔记_第11张图片

三:参考一览

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

你可能感兴趣的:(新手笔记,持续集成系统,devops,jenkens)