window下使用Jenkins来做自动化部署的教程图解

今天我们来说一下,如何使用Jenkins+powershell脚本,将我们的.NET CORE的脚本部署到对应的服务器上.

这里我们使用的源码管理工具是TFS.虽然源码管理器比较老旧,但是原理都差不多.

1.安装Jre,因为我们的Jenkins是基于java开发的,所以需要先在服务器上安装java的运行时环境

这个安装过程比较简单,百度下载JRE,然后安装,暂且不表.

下载地址:https://www.java.com/en/download/manual.jsp

2.下载并安装Jenkins,这里服务器是Windows的,所以最好下载Windows版本的,安装好以后直接就以Windows服务的形式运行了.

这个安装过程也是非常的简单,网上教程很多.

https://jenkins.io/download/

3.安装好Jenkins以后,根据需要我们安装权限插件,给不用的账号配置不通过的权限,(此步骤可选)

具体可参看此文章,说的很详细:

https://www.jb51.net/article/161947.htm

4.最关键的一步来了,就是如何使用Jenkins来自动部署我们的代码.

这里主要分以下几个小点,下面我会贴出详细的代码.

1)获取TFS中的最新源码,这里我并没有通过Jenkins去获取代码,而是通过tf命令去拉取代码的.

这样的好处就是,所有的Jenkins任务的源代码,我都可以使用同一份,而不用每个任务单独去拉取一份代码.

2)拉取到代码以后,自然就是通过命令来编译我们的代码,熟悉.net的朋友们应该都知道,无非就那几个命令了

3)代码发布出来以后,自然就是要将代码copy到我们的站点或者Windows服务下面去.

这一步也很简单,无非就是通过命令停止iis站点和应用程序池;copy代码;重启启动对应的站点即可

一套下来,打完收工.

下面贴出几个关键步骤的截图:

1.Jenkins创建自由风格的任务

2.其他什么都可以不选,只要我们使用powershell脚本,需要Jenkins支持powershell也需要安装插件

3.点击保存,一套搞定.点击build now即可

ps:下面给出详细的powershell脚本,非常简单这里就不详述了,大家一看代码就明白了

net stop Test1Job
C:\Windows\System32\inetsrv\appcmd.exe stop site Test1.test.com
C:\Windows\System32\inetsrv\appcmd.exe stop site Test1.api.test.com
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"test1.test.com"
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"Test1.api.test.com"
dir "$PSScriptRoot\lib" -Filter "*.ps1" | foreach {
 . $_.fullName
 Write-Host "Import $($_.fullName)"
}
#1.获取源码
D:\test\tools\get_tfs.bat
#2.编译源码
dotnet build D:\test\Source\MTools\Source-Promotion\Test.API.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore
echo API OK
dotnet build D:\test\Source\MTools\Source-Promotion\Test.Web.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore
echo WEB OK
dotnet build D:\test\Source\MTools\Source-Promotion\Test.Job.WindowsService.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore -v q
echo job OK
Sleep 20
#3.发布
CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.API\bin\Debug\netcoreapp2.1 D:\Test\Test1\api
CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Web\bin\Debug\netcoreapp2.1 D:\Test\Test1\web
CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Web\wwwroot D:\Test\Test1\web\wwwroot
CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Job.WindowsService\bin\Debug\netcoreapp2.1\win-x64 D:\Test\Test1\job
net start Test1Job
C:\Windows\System32\inetsrv\appcmd.exe start site Test1.test.com
C:\Windows\System32\inetsrv\appcmd.exe start site Test1.api.test.com
C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"test1.test.com"
C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"Test1.api.test.com"
Write-Host "success"
Get-Date
function CCopy($folder_a_path,$folder_b_path)
{
 if(!(test-path $folder_b_path))
 {
 md $folder_b_path
 }
 #遍历源文件夹下所有文件
 $folders_a = gci $folder_a_path -Recurse
 foreach ($folder_a in $folders_a)
 {
 if($folder_a.fullname -like "*appsettings.json*")
 {
 continue
 }
 #通过替换的方式,取目标文件的全路径名称
 $b = $folder_a.fullname.replace($folder_a_path,$folder_b_path)
 #判断目标文件是否存在,如果存在则先判断新旧
 If (test-path $b)
 {
  #判断目标是否为目录,如果是目录则跳过,如果不跳过,则会创建一级空目录
  If (!((gi $b).PSIsContainer))
  {
  #判断目标文件、源文件的新旧情况,如果目标已存在文件的修改时间早于源文件,则重新拷贝覆盖
  If ((gci $b).lastwritetime -lt $folder_a.lastwritetime)
  {
  copy-item $folder_a.fullname $b -force
  }
  }
 }
 #如果目标文件不存在,则直接拷贝
 Else
 {
  copy-item $folder_a.fullname $b
 }
 }
}

一套打完手工,大家有什么意见和建议,请提出~

后续将进一步写通过powershell将程序发布到其他服务器上,以及发布完成以后,邮件告知结果

待续...

总结

以上所述是小编给大家介绍的window下使用Jenkins来做自动化部署的教程图解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Windows Server 2012 DHCP+WDS+WIN7+万能驱动 部署教程(三)

    Windows Server 2012 DHCP+WDS+WIN7+万能驱动 部署教程(一) //www.jb51.net/article/140113.htm 1.固定IP地址 2.添加角色和功能(DHCP&WDS) 3.配置DHCP Windows Server 2012 DHCP+WDS+WIN7+万能驱动 部署教程(二) //www.jb51.net/article/140114.htm 4.配置WDS部署服务 4-1.添加启动&安装映像(以Windows 7x64为例) 4-2.

  • Windows 2012/IIS8多网站用相同端口部署多张证书(SNI)

    安装环境: 1.Windows server 2012/IIS 8 2.服务器本地计算机已经安装两张SSL证书 3.IIS已近架设两个网站,可http访问 安装目的: 在IIS 8上将两张证书,分别绑定在两个不同的网站的默认https端口443上. 安装步骤: (IIS 8如何安装SSL证书,请参考指南:http://xiazai.jb51.net/201803/books/IIS8SSLbushu.pdf) 1.在第一个网站绑定SSL证书,不要绑定IP地址填写主机名(作为默认的SSL证书,开启

  • Windows 系统下安装和部署Egret的开发环境

    需要安装的软件如下: Node.js TypeScript TypeScript代码编辑器 HTTP服务器(可选) Chrome(可选) Egret 这篇文档中,我们主要介绍在Windows环境中安装Egret.其安装步骤如下. 1.安装Node.js 1.1下载Node.js Node.js的安装方法非常简单,我们可以访问 Node.js官网,然后进点击页面中的INSTALL按钮,可直接下载Node.js的msi安装文件包. 本教程撰写时,Node.js版本为0.10.29,如果你的版本高于此

  • Windows Server 2012 DHCP+WDS+WIN7+万能驱动 部署教程(一)

    1.固定IP地址 2.添加角色和功能(DHCP&WDS) 3.配置DHCP 4.配置WDS部署服务 4-1.添加启动&安装映像(以Windows 7x64为例) 4-2.添加安装映像 4-3.添加启动映像 4-4.服务器属性配置 4-5.创建多播传输 4-6.自应答文件说明 1.固定IP地址 右键点击网络图标打开网络共享中心 2.添加角色和功能(DHCP&WDS) 一路下一步直到安装完成即可 3.配置DHCP

  • Windows Server 2008 R2上部署Exchange Server 2010图文教程

    这两个产品可谓是09年下半年微软推出的重头产品,均为64位架构,而且其功能和性能远远超出了其早期版本,在此不再对这方面的内容做过多的描述. Windows Server 2008 R2和Exchange Server 2010的结合是"完美"的.对于Exchange Server 2010的前一版本Exchange Server 2007来讲,只能运行在Windows Server 2008操作平台上,因此,想要在Windows Server 2008 R2部署Exchange 看来只

  • WIN2008 R2 Active Directory 之二 部署企业中Windows Server 2008 R2额外域控制器

    题外话--谨以此文纪念"痛苦"的交规考试以98分通过.小弟准备考驾照,最近被交规,就把博文之事放下了.哈哈哈,今天刚一通过就马上来码字儿了! 通过<部署企业中第一台Windows Server 2008 R2域控制器>(http://www.jb51.net/article/38401.htm)已经完成了企业中Windows网络域森林的建立.但是,在企业中对于AD来讲,为了保证安全稳定运行,至少需要两台以上的物理域控制器. 在早期的Windows中可以部署备份域控制器(BD

  • Windows Server 2012 DHCP+WDS+WIN7+万能驱动 部署教程(二)

    Windows Server 2012 DHCP+WDS+WIN7+万能驱动 部署教程(一) //www.jb51.net/article/140113.htm 1.固定IP地址 2.添加角色和功能(DHCP&WDS) 3.配置DHCP Windows Server 2012 DHCP+WDS+WIN7+万能驱动 部署教程(二) 4.配置WDS部署服务 4-1.添加启动&安装映像(以Windows 7x64为例) 4-2.添加安装映像 4-3.添加启动映像 Windows Server 2

  • 阿里云的WindowsServer2016上部署php+apache

    一.说明:项目需要在阿里云的WindowsServer2016上部署web环境,已经安装了Mysql,所以就不用一键安装(如phpstudy或者wamp来安装web环境了),就独立安装了Apache和PHP 二.安装 1.按照链接下载好这3个东西,根据你的系统是32位还是64位来下载,我的环境是64位的 参考下载地址 VC2015(建议,因为VC2012可能会缺少某些dll) https://www.microsoft.com/en-US/download/details.aspx?id=481

  • windows安装nginx部署步骤图解(反向代理与负载均衡)

    一.下载安装Nginx(本文环境为windows xp 32bit环境) 解压nginx-1.0.11.zip,进入nginx-1.0.11,在命令行中执行命令让Nginx启动.具体操作如下图: 测试是否安装成功,输入地址:http://localhost:8090 浏览器显示结果如下图: OK,Nginx部署成功了. 二.关于Nginx的反向代理配置. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器

  • window下使用Jenkins来做自动化部署的教程图解

    今天我们来说一下,如何使用Jenkins+powershell脚本,将我们的.NET CORE的脚本部署到对应的服务器上. 这里我们使用的源码管理工具是TFS.虽然源码管理器比较老旧,但是原理都差不多. 1.安装Jre,因为我们的Jenkins是基于java开发的,所以需要先在服务器上安装java的运行时环境 这个安装过程比较简单,百度下载JRE,然后安装,暂且不表. 下载地址:https://www.java.com/en/download/manual.jsp 2.下载并安装Jenkins,

  • 帮你快速上手Jenkins并实现自动化部署

    一.下载与安装 Jenkins的下载可以直接在官网下载,方式还是比较简单的,官网提供了具体的下载和安装的步骤. sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key # 安装 yum install jenkins -y # 启

  • 基于Docker、Nginx和Jenkins实现前端自动化部署

    目录 前期准备 部署目标 Dcoker环境的搭建 连接云服务器 安装Docker环境 Docker安装Docker Compose Docker安装Nginx和Jenkins服务 安装Nginx和Jenkins Nginx和Jenkins目录编写 docker-compose.yml文件配置 nginx.conf文件配置 安装Jenkins插件 关联Jenkins和GitLab 生成密钥 新建项目 源码管理 构建触发器 结束语 前期准备 基于CentOS 7系统云服务器一台. 基于Vue-CLI

  • Jenkins+Maven+SVN自动化部署java项目

    安装Jenkins 提示:首先Jenkins安装方式有2中,一种是yum安装,另一种是使用war的方式进行安装(war就需要安装tomcat) 官方文档:https://pkg.jenkins.io/redhat/ 如果我们想使用war包的方式可以直接下载war包 Jenkins访问地址:localhost:8080/jenkins 新版本的jenkins为了保证安全,在安装之后有一个锁,需要设置密码之后才可以解锁 我们选择推荐安装即可 安装插件中 设置管理员账号密码 登陆jenkins 安装m

  • Jenkins+Docker 一键自动化部署 SpringBoot 项目的详细步骤

    目录 Jenkins+Docker 一键自动化部署 SpringBoot 项目 一.安装docker 1.确保 yum 包更新到最新 2.卸载旧版本(如果安装过旧版本的话) 3.安装需要的软件包 4.设置yum源 5.安装docker 6.启动和开机启动 7.验证安装是否成功 二.安装Jenkins 1.安装Jenkins 2.初始化Jenkins 2.1 解锁Jenkins 2.2 安装插件 2.3 创建管理员用户 三.系统配置 1. 安装需要插件 2. 配置Maven 四.创建任务 1. 新

  • windows7下mysql8.0.18部署安装教程图解

    一.前期准备(windows7+mysql-8.0.18-winx64) 1.下载地址:https://dev.mysql.com/downloads/ 2.选择直接下载不登录账号,下载的压缩包大概两百多M,解压后一个G左右 3.压缩文件,记着压缩文件的位置,下边需要添加环境变量,我的:C:\Program Files\mysql-8.0.18-winx64,将文件放在一个自己习惯的地方,并且创建一个data文件夹,和一个my.ini文件,data文件是空的,my.ini网上很多种组合方法,看个

  • Windows下通过MySQL Installer安装MySQL服务的教程图解

    MYSQL官方提供了Installer方式安装MYSQL服务以及其他组件,使的Windows下安装,卸载,配置MYSQL变得特别简单. 1. 安装准备 1.1 准备MySQL安装包 百度云盘共享链接: https://pan.baidu.com/s/1Jni0OIJmaJj21-xeVVYeXQ 提取码: e9is windows版本安装包下载 1.2 检查操作系统类型 检查操作系统类型主要是了解系统是: 32位操作系统(x86) 还是64位操作系统(x64) 1.3 检查系统是否已安装MySQ

  • Windows下MongoDB的下载安装、环境配置教程图解

    下载MongoDB 1.进入MongoDB官网,Products -> 选择SOFTWARE下的MongoDB Server 2.选择下载最新版 3.选择对应的版本下载 msi安装包形式安装MongoDB 1.选择complete,完整安装(安装全部组件).complete,完整的.完全的. 当然也可以选自定义安装,影响不大. 2. data目录是数据存储目录,数据库中的数据就存储在这个目录中.log是日志文件的输出目录. 需要在该盘的根目录下新建一个data文件夹(必须要是MongoDB安装盘

  • 从零搭建docker+jenkins+node.js自动化部署环境的方法

    本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker部分 1.1.docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口 1.2.docker架构 简单的说,docker就是一个轻量级的linux系统.Docker 容器通过 Docker 镜像来创建.

  • spring boot 项目利用Jenkins实现自动化部署的教程详解

    本文主要讲解利用Jenkins实现spring boot项目的自动化部署: •1.后台技术架构:Spring boot 1.4.2.RELEASE +Mybatis 3+ Redis+ Mysql 5.6+JDK8; •2.代码构建工具:maven 3.3; •3.源代码托管工具:Gitlab; •4.利用maven的docker插件打包成docker镜像在docker容器中部署项目: •5.服务器是阿里云的ECS; 一.安装Jenkins 1.阿里云服务器安装Jenkins方式见如下链接地址

随机推荐