搭建面向NET Framework的CI/CD持续集成环境(一)Windows服务器安装Jenkins
前言
网上大多数都是针对主流的Spring Cloud、NET Core的CI/CD方案。但是目前国内绝大部分的公司因为一些历史原因无法简单的把项目从NET Framework切换升级到NET Core,又急切的需要引入CI/CD流程来提高开发体验和效率。因此,本系列博客针对这一问题,旨在解决NET Framework的持续集成难题。
面临的难题
- 项目结构复杂,且源代码工程结构多为一个解决方案多个项目的模式
- 构建比较困难,有一些项目的包管理还是以文件路径的引用方式
- 前后端未完全分离,目前很多公司的NET项目,前端人员和后端人员分开,但是项目源码还是在同一个工程
- 项目的配置文件在多环境下很难做到自动调整。无论是使用自带的多环境配置文件语法还是对接目前市面上的配置中心都比较困难
- 部署无法像NET Core一样打包镜像,推送到镜像管理平台,然后再做升级
整体思路
鉴于以上几个难题,对于NET Framework项目的CI/CD搭建方案其实很有限。我选择的方案大体是Gitlab+Jenkins+MSbuild+Rsync
下面介绍一下这几块的分别的分工和作用:
- GItlab:源代码管理、配置Webhook、工程师提交分支代码触发相应的Jenkins的item任务
- Jenkins:负责管理构建部署持续集成流水线的每个阶段
- MSbuild:负责构建NET Framework项目,生成发布文件
- Rsync:负责把构建好的发布文件部署到指定的服务器上
流程图

这个流程图是适用于前后端在同一项目不同分支的情况,可以根据项目的实际情况做出相应的改变、当然主体流程不会变
那我们接下来就实际的开始搭建
Windows服务器安装Jenkins
一、下载安装包
官方下载地址:Jenkins安装包下载地址

直接选择Windows环境的LTS版本安装包
二、安装JDK
因为Jenkins是需要依赖Java环境的,所以需要先在服务器安装JDK。博主在这里直接把JDK安装包放到这儿,JDK的安装过程和环境变量配置网上很多,我就不在这儿赘述了。
JDK百度网盘链接 提取码:5rpx
三、安装Jenkins
安装比较简单,跟着提示一直下一步就好了
1、配置服务器的账号密码

2、选择Jenkins服务端口

3、配置JDK路径

4、安装完成,Jenkins会自动打开浏览器的对于端口的页面(比如我默认的:8080端口)。这会有点久,可能需要十几分钟,先去下面第四步去配置Jenkins的工作目录然后重启服务,不然重启之后又要初始化

四、配置Jenkins
Jenkins安装好之后,会有一个Jenkins.xml配置文件。我们需要去里面配置一下Jenkins的工作目录
1、打开Jenkins安装路径下的Jenkins.xml配置文件

2、配置工作目录

3、修改完毕,重新启动服务使配置生效

4、这时候Jenkins的管理网页也初始化好了,安装提示在指定路径找到密码文件,复制密码到文本框内,然后点击继续

5、这里点击 选择插件来安装,因为其实有一些插件,我们是不需要的,根据自己的需求来就好了

6、然后就是勾选自己想要的插件来安装的,我下面列举一下必须的但是Jenkins默认没勾选的插件,然后点击安装等插件自动安装完毕,Jenkins就算是安装完成了

- MSBuild:编译NET Framework项目
- GitLab:源代码管理,拉取项目代码,配置分支提交Webhook
- Role-based Authorization Strategy:Jenkins的角色权限管理,分配团队成员不同的权限
完
第一篇就写这么多,主要是对整体的思路做了一个简单的介绍,然后说明如何安装和配置Jenkins。下一篇我会讲解如何配置Jenkins的item从Gitlab拉取代码。
整个系列我预计大概有8~10篇,主要是我看网上的对这些的讲解都比较零散且粗略,我想讲解的细致一些,避免大家在搭建的过程中趟一些我遇到的坑。
搭建面向NET Framework的CI/CD持续集成环境(一)Windows服务器安装Jenkins的更多相关文章
- 搭建面向NET Framework的CI/CD持续集成环境(一)
前言 网上大多数都是针对主流的Spring Cloud.NET Core的CI/CD方案.但是目前国内绝大部分的公司因为一些历史原因无法简单的把项目从NET Framework切换升级到NET Cor ...
- CI/CD持续集成/持续部署 敏捷开发
敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它 ...
- GitLab CI/CD持续集成设置
GitLab CI/CD持续设置 官方文档地址(https://docs.gitlab.com/ee/ci/README.html) GitLab CI.CD功能非常完善,只需要简单几步,就可以完成项 ...
- CI/CD持续集成小结
一.概念 什么是devops,基于Gitlab从零开始搭建自己的持续集成流水线(Pipeline) https://blog.csdn.net/chengzi_comm/article/details ...
- CI/CD持续集成方案
一,CI/CD流程和持续交付简介 CI(Continuous Integration)持续集成 CD(Continuous Deployment)持续部署 CD(Continuous delive ...
- GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署
预期目标 源代码管理 借助GitLab实现源代码托管,私有化部署版本,创建项目,创建用户组,分配权限,项目的签入/牵出等. 自动化部署 源代码产生变更时(如签入),自动化编译并发布到指定服务器中部署, ...
- WTM框架使用技巧之:CI/CD(持续集成/持续部署)
1. 什么是WTM框架? 一个快速.灵活.社区活跃.最最最最高效的.netcore 后台管理系统.详见 https://wtmdoc.walkingtec.cn/ 欢迎大家付费支持WTMPlus,反哺 ...
- 从零入门 Serverless | 教你 7 步快速构建 GitLab 持续集成环境
作者 | 存诚 阿里云弹性计算团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文章 ...
- [转] 基于Gitlab CI搭建持续集成环境
[From] https://blog.csdn.net/wGL3k77y9fR1k61T1aS/article/details/78798577 前言 本文是在12月12号迅雷@赵兵在前端早读课第三 ...
随机推荐
- JavaScript写秒表
1.HTML部分 <div id="div1"> <span id="hour">00</span> <span> ...
- python之线程池和进程池
线程池和进程池 一.池的概念 池是用来保证计算机硬件安全的情况下最大限度的利用计算机 它降低了程序的运行效率但是保证了计算机硬件的安全从而让你写的程序能够正常运行 ''' 无论是开设进程也好还是开设线 ...
- C++中线程安全单例模式的正确实现方式
为什么说DCLP不是线程安全的 DCLP(Double Checked Locking Pattern),即双检锁模式: class Foo { public: static Foo* getInst ...
- 【纯水题】POJ 1852 Ants
题目大意 有一根长\(L\)厘米米的水平木棍上有\(n\)个蚂蚁,它们以每秒1cm/s的爬(fei)行(ben)到木棍的一端,之后掉下去. 给出每个蚂蚁的起始位置,但是不知道它们爬行的方向.相向而行的 ...
- 【原创】xenomai3.1+linux构建linux实时操作系统-基于X86_64和arm
版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 一.概要 二.环境准备 1.1 安装内核编译工 ...
- 第四章 Bash Shell 的简单应用
一.Bash Shell 的简单介绍 1.什么是bash shell? 是一个命令解释器 它在操作系统的最外面 负责用户与内核进行交互的一种接口 将用户输入的命令翻译给操作系统,并将处理后的结果输出到 ...
- Pytest配置文件声明自定义用例标识
使用pytest.ini添加自定义用例标识: [pytest] # 1.使用没有注册过的标记抛出错误 addopts = --strict-markers # 2.自定义标记 markers = sm ...
- RedisManager2020.4最最最最简单的破解方式
前言 redis manager是一款很优秀的redis数据库可视化工具,果然优秀的软件最终都走向了收费,贫民玩家越来越难了.赶时间的直接拉到最后,有下载方式. 破解 无需破解,已是破解版 安装 下载 ...
- 【Flutter 1-2】在 Windows 10下安装Flutter+Dart+Android Studio 配置Flutter开发环境
在 Windows 10下安装Flutter+Dart+Android Studio 配置Flutter开发环境 文章首发地址 配置环境变量 由于部分网站被墙的原因,我们需要先配置Flutter国内镜 ...
- 使用Node.js原生API写一个web服务器
Node.js是JavaScript基础上发展起来的语言,所以前端开发者应该天生就会一点.一般我们会用它来做CLI工具或者Web服务器,做Web服务器也有很多成熟的框架,比如Express和Koa.但 ...