Windows服务器实现自动化部署-Jenkins

摘要:
它可以从代码仓库自动提取、编译、打包、部署和测试。它通常与版本管理工具和构建工具结合使用。您可以将代码部署到连接到数据库的暂存环境中的更多测试。编码→ 建筑物→ 集成→ 测试→ 传送→ 部署二。Jenkins简单安装和配置(Windows环境)在Windows平台上,本文以war包的安装为例。1.安装Java环境Jenkins是一个Java开发,因此需要先安装相应的jdk版本,然后再配置环境变量。

在引入自动化部署工具的时候,对比了jenkins和gitlab CI,jenkins有非常丰富的插件,配置起来方便。gitlab CI更倾向于脚本配置,当然jenkins也可以使用pipeline实现全脚本化配置。我们这里主要讲述jenkins的自动化部署。基本组合是jenkins+git+msbuild,实现从代码仓库拉取、编译、打包、部署、自动化测试。(.net core和framework4.6.1可以不依赖msbuild构建)

一、Jenkins概述
Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成(CI)工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务,如构建,测试和部署软件。Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。通常与版本管理工具、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle、MSBuild。

1、CI/CD是什么

 CI(Continuous integration)是持续集成。持续集成强调开发人员提交了新代码之后,立刻进行构建、测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。借用网络图片对CI加以理解。 

Windows服务器实现自动化部署-Jenkins第1张

CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。下图反应的是CI/CD 的大概工作模式。 

Windows服务器实现自动化部署-Jenkins第2张

2、Jenkins特点:

  • 开源免费;

  • 跨平台,支持所有的平台;

  • master/slave支持分布式的build;

  • web形式的可视化的管理页面;

  • 安装配置超级简单;

  • tips及时快速的帮助;

  • 已有的200多个插件

3、Jenkins的一个工作流程

互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段:编码 → 构建 → 集成 → 测试 → 交付 → 部署

Windows服务器实现自动化部署-Jenkins第3张

二、Jenkins简单安装及配置(Windows环境)

Windows平台下,一般安装方法有2种:安装程序exe安装和war包安装,本文以war包安装为例子


1、安装Java环境

Jenkins是java开发,因此需先安装对应jdk版本,注意版本兼容,因为我要下载Jenkins2.226版本,所以我们需要下载Java的版本是8到11,否则不兼容。

Windows服务器实现自动化部署-Jenkins第4张

 下载成功后,双击安装包,一直下一步即可,安装完成之后需要配置环境变量,如下图:

Windows服务器实现自动化部署-Jenkins第5张

系统变量->新建,变量名JAVA_HOME,值对应的是JDK的安装路径。

Windows服务器实现自动化部署-Jenkins第6张

 选择名为Path的系统变量,点击编辑,在变量值末尾加上 %JAVA_HOME%in

Windows服务器实现自动化部署-Jenkins第7张

 检验是否配置成功:在命令提示符输入:java -version

Windows服务器实现自动化部署-Jenkins第8张 

2、Jenkins简单安装

Jenkins下载地址:https://jenkins.io/download/ ,下载war包,命令行安装。我这里下载的是Jenkins2.226版本,相应的Java环境需要安装Java8~java11

Windows服务器实现自动化部署-Jenkins第9张

下载完成后,进入命令行模式,直接定位到jenkins.war所在的目录,然后执行下面的命令:

Windows服务器实现自动化部署-Jenkins第10张

因为jenkins的war包自带jetty服务器,所以启动成功后,直接打开浏览器操作即可。输入http://localhost:8080,点击回车,出现以下画面:

 Windows服务器实现自动化部署-Jenkins第11张

 耐心等几分钟,出现如下页面

Windows服务器实现自动化部署-Jenkins第12张

第一次使用jenkins时,为了安全考虑,会生成一串字符口令!进入对应的路径,打开该文件,将对应的字符复制进输入框内,点击继续按钮,等待安装成功。我们先不安装插件,回头自主安装,操作如下:

Windows服务器实现自动化部署-Jenkins第13张

Windows服务器实现自动化部署-Jenkins第14张

  

 跳过插件安装后,接下来就是创建一个管理员账号了,界面如下:

Windows服务器实现自动化部署-Jenkins第15张

  

输入用户名root,密码qxh123,点击保存并完成,jenkins就安装成功了

 Windows服务器实现自动化部署-Jenkins第16张

3、Jenkins插件安装

Jenkins配置成服务

Jenkins安装成功后,可已经将它设置成Windows服务,不用每次通过命令提示符输入命令启动了。设置成服务的方法如下:

Windows服务器实现自动化部署-Jenkins第17张

 按照提示就可以配置成功了,在Windows服务列表中就可以找到jenkins了

Windows服务器实现自动化部署-Jenkins第18张

插件下载提速

下载插件太慢了,默认插件下载是从jenkins官网的地址下载,太慢了。将地址替换为以下地址

 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

进入jenkins系统管理,进入插件管理,点击高级,修改升级站点的地址

Windows服务器实现自动化部署-Jenkins第19张

然后重启jenkins服务。然后发现还是慢,该下载失败的还是失败。查看错误信息,发现下载地址仍然是官网地址。所以直接打开jenkins所在目录:

首先找到default.json文件,一般在Jenkins服务update目录下,替换内容:

替换 updates.jenkins-ci.org/download 为 mirrors.tuna.tsinghua.edu.cn/jenkins
替换 updates.jenkins.io/download
 为 mirrors.tuna.tsinghua.edu.cn/jenkins

替换 www.google.com 为 www.baidu.com

然后找到Jenkins/hudson.model.UpdateCenter.xml文件

替换 url 为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

通过以上方法,我这边就可以了,很快,看下效果:

Windows服务器实现自动化部署-Jenkins第20张

如果还不行,就离线下载jenkins插件http://updates.jenkins-ci.org/download/plugins/,然后采用上传的方式。 

Git插件安装

代码基本都是使用Git管理的,所以下载Git插件。进入“系统管理”->“插件管理”,安装git插件。 

Windows服务器实现自动化部署-Jenkins第21张

Msbuild安装

其实我们可以在jenkins中下载msbuild插件的,但是考虑到不兼容性问题(比如,我们下载的msbuild版本不支持C#8.0语法,我们源代码就没办法构建了,编译经常出错)。所以最彻底的方法就是安装VS,然后在“系统管理”->“全局工具配置”中配置VS工具中的msbuild路径。

Windows服务器实现自动化部署-Jenkins第22张

jenkins汉化

折腾到现在,突然感觉英文版的还是有点不方便的,虽然能看懂大部分,但是有些细节的地方真没心思去看。

安装插件Localization:Chinese,然后重启jenkins服务即可。效果如下:(哈哈,中英文参半,可以了)

Windows服务器实现自动化部署-Jenkins第23张

 4、jenkins插件配置

进入插件管理-全局工具配置,如下git已经配置好了,就是我们下载的git插件

Windows服务器实现自动化部署-Jenkins第24张

 然后配置MSbuild,我们这里使用VS2019上的MSbuild,避免代码和msbuild的版本不兼容。一般msbuild.exe存在于目录C:Program Files (x86)Microsoft Visual Studio2019EnterpriseMSBuildCurrentBin中,配置结果如下:

Windows服务器实现自动化部署-Jenkins第25张

三、使用Jenkins进行代码测试、打包(未完待续)

如下图所示,操作如下:

Windows服务器实现自动化部署-Jenkins第26张

 Windows服务器实现自动化部署-Jenkins第27张

下图是构建任务设置界面,可以看到上方的几个选项"General", "源码管理", "构建触发器", "构建", "构建后操作"。下面逐一介绍。

Windows服务器实现自动化部署-Jenkins第28张

General

General是构建任务的一些基本配置。
  • Discard old builds: 设置构建历史的保存策略

    •   log Rotation:日志循环
    •   保持构建的天数:意思就是根据你所填写的天数来保存构建记录
    •   保持构建的最大个数:意思就是有几条构建记录就保存几条
    •   发布包保留天数:例如我们发布的war包等的保存天数
    •   发布包最大保留#个构建 :例如我们发布了几个war包,就保存几静默期:设置一个时间来间隔每次构建的间隔
  • 重试次数:这个和系统设置的一样,拉取源码重试的次数
  • 该项目的上游项目正在构建时阻止该项目构建:用于上游项目有关联的构建策略
  • 该项目的下游项目正在构建时阻止该项目构建:用于下游项目有关联的构建策略

  • 使用自定义的工作空间:使该项目独立于系统的工作空间 

源码管理

源码管理就是配置你代码的存放位置。 

 Windows服务器实现自动化部署-Jenkins第29张

Repository URL:仓库地址,和平时使用git下载仓库差不多的配置,我使用的是HTTPS的方式

Credentials:凭证。可以使用HTTPS方式的用户名密码,也可以是RSA文件。 但要通过后面的"ADD"按钮添加凭证。

Branches to build:构建的分支。*/master表示master分支,也可以设置为其他分支。

源码浏览器:你所使用的代码仓库管理工具,如github, gitlab.

构建触发器

就是构建任务的触发器。

 Windows服务器实现自动化部署-Jenkins第30张

触发远程构建(例如,使用脚本): 该选项会提供一个接口,可以用来在代码层面触发构建

Build after other projects are built: 该选项意思是"在其他projects构建后构建"。

Build periodically: 周期性的构建。很好理解,就是每隔一段时间进行构建。如下图的设置,表示每隔30分钟进行一次构建

Windows服务器实现自动化部署-Jenkins第31张

Poll SCM:该选项是配合上面这个选项使用的。当代码仓库发生改动,jenkins并不知道。需要配置这个选项,周期性的去检查代码仓库是否发生改动。 如下图,十分钟检查一次

Windows服务器实现自动化部署-Jenkins第32张

构建环境

构建环境就是构建之前的一些准备工作,如指定构建工具(在这里我使用MSBuild)。

 Windows服务器实现自动化部署-Jenkins第33张

免责声明:文章转载自《Windows服务器实现自动化部署-Jenkins》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CentOS VNC配置(转)moment.js常用总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用gdb调试nasm汇编程序

用gdb调试nasm汇编程序 对于一个程序员来说,调试是很重要的,可以节约找到bug的时间,不过以前在linux下一直是对c进行调试的,今天突然要对汇编进行调试还真不知道怎么调,特别是对linux下调试汇编程序基本没搞过。记得以前上课学masm时,用的是debug,貌似映像中对汇编挺难调试的。于是就在网上查了下在linux下调试nasm汇编程序的资料,看起...

可能你不知道的,关于自动装箱和自动拆箱

包装类 我们知道,Java中包含了8种基本数据类型: 整数类型:byte、short、int、long 字符类型:char 浮点类型:float、double 布尔类型:boolean 这8种基本数据类型的变量不需要使用new来创建,它们不会在堆上创建,而是直接在栈内存中存储,因此会比使用对象更加高效。 但是,在某些时候,基本数据类型会有一些制约,例如...

Java篇:Docker的介绍安装 和常用命令

文章目录 为什么 出现docker Docker的简介 容器(Container) 镜像(Image) 仓库(Repository) Docker的安装 查看容器 删除镜像 删除容器 部署应用 以mysql为例 为什么 出现docker 在上面这幅图,我们看到了,docker容器的优势,简单点数说,就是 解决了运行环境和配置问题软件...

第1章 整合jenkins和阿里云code仓库

1. 整合jenkins和阿里云code仓库 1.1. 为code仓库添加SSH密钥 # 查看服务器公钥 [root@localhost ~]# cat /root/.ssh/id_rsa.pub # 将服务器公钥添加到阿里云code 阿里云code登录地址: https://code.aliyun.com/ 管理控制台 - - 设置 - - SSH公钥...

【最新】Android使用jenkins全自动构建打包-Windows版本(Android,Jenkins,360加固,Email,QRcode,参数构建,蒲公英)

 Android打包喝咖啡系列(Windows版) 这篇博客主要讲述的内容:   1、windows上部署Jenkins https://jenkins.io   2、基于SVN或Git https://github.com/Codetroupe/JenKinsTestAPP   3、Android项目参数化自动构建   4、自动将APK上传至蒲公英 ht...

vscode变量快速转换驼峰等格式

vscode变量快速转换驼峰等格式 使用插件A-super-change-case 插件地址:A-super-change-case 配置各种转换格式 "change-case.default": [ "camelCase", "param-case", "snake_case", "PascalCase", "CONST_CASE"...