zoukankan      html  css  js  c++  java
  • Windows服务器实现自动化部署-Jenkins

    在引入自动化部署工具的时候,对比了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加以理解。 

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

    2、Jenkins特点:

    • 开源免费;

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

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

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

    • 安装配置超级简单;

    • tips及时快速的帮助;

    • 已有的200多个插件

    3、Jenkins的一个工作流程

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

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

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


    1、安装Java环境

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

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

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

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

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

     

    2、Jenkins简单安装

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

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

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

     

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

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

      

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

      

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

     

    3、Jenkins插件安装

    Jenkins配置成服务

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

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

    插件下载提速

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

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

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

    然后重启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

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

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

    Git插件安装

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

    Msbuild安装

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

    jenkins汉化

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

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

     4、jenkins插件配置

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

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

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

    如下图所示,操作如下:

     

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

    General

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

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

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

    源码管理

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

     

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

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

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

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

    构建触发器

    就是构建任务的触发器。

     

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

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

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

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

    构建环境

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

     
  • 相关阅读:
    MTK Android 源码目录分析
    MTK Android 平台语言支持状态
    开坑了啦啦啦..
    codeforces泛做..
    用介个新的blog咯..
    【UR #5】怎样跑得更快
    【UR #5】怎样提高智商
    【集训队互测2016】消失的源代码
    口胡
    [八省联考2018]劈配
  • 原文地址:https://www.cnblogs.com/qtiger/p/13965443.html
Copyright © 2011-2022 走看看