ASP.Net Core使用Jenkins配合pm2自动化部署项目
一. 新建一个自由风格的软件项目

二. General配置(参数化构建)
1. 用来选择部署的服务器(我这里只添加了一个,如果需要添加多个,一行一个就可以了)

2. 选择不同的环境变量

三、源码管理
1. 填写Github项目地址,选择Credential(Credential需要自己新建,根据自己情况添加即可)。

2. 在Branches to buid下边填写要拉取的远程分支(如图)
四、Buid Steps
1. 增加构建步骤-Send files or execute commands over SSH
(1)选择Name之前,需要提前添加需要ssh的服务器的主机信息(当前使用windows服务器演示),包括地址,用户名,密码,例如:
在Dashboard-系统管理-系统配置-Publish over SSH-新增
Name随便填,能用来分辨即可,Hostname即ip地址,Username就是ssh的用户名,如果ssh需要密码,则再“高级”中勾选 "Use password authentication, or use a different key",然后填写密码。
最后,在右下角点击“Test Configuration”,如果通过,则继续进行下一步。否则需要重复检查您自己的配置直到通过。
(2)继续回到添加构建步骤,如下图,Name选择刚刚添加的ssh服务器信息,然后选择“高级”,勾选Verbos output in console(从Jenkins控制台输出详细步骤),勾选Label,Label则填写参数化构建过程中的SSH_SERVER中的选项列表的选项对应(一个选项 对应一个ssh步骤模块)。
(3)Transfers配置
Exec command下边填写命令
d: &&
if not exist mt4-manager md mt4-manager &&
mkdir D:\\mt4-manager\\$MANAGER &&
cd "mt4-manager" &&
if not exist publish md publish &&
cd "d:\\mt4-manager\\publish" &&
if not exist $MANAGER md $MANAGER
释义:发送cmd命令
d: ->跳转到D盘
if not exist mt4-manager md mt4-manager -> 如果不存在mt4-manager文件夹则创建
mkdir D:\\mt4-manager\\$MANAGER -> 创建动态名称目录($MANAGER对应参数化构建过程中的MANAGER对应的选项)
cd "mt4-manager" -> 跳转到mt4-manager目录
后边的命令同以上
、

“高级”菜单中,Exec timeout修改为0,并且勾选Exec in pty。
2. 在同模块下,添加Transfer Set子模块

在Exec command下边填写以下命令:
pm2 delete "mt4-manager-api-$MANAGER"
3. 添加构建步骤-执行shell

输入命令(拷贝Jenkins服务器上的代码到ssh服务器上对应的目录):
scp -r ../mt4-manager-api mt4@192.168.0.130:d:\\mt4-manager\\$MANAGER
4. 再次添加构建步骤-Send files or execute commands over SSH

配置跟刚刚配置的ssh模块一样,但是Exec command输入为:
d: &&
cd "D:\mt4-manager\$MANAGER\manager-api-v2" &&
dotnet publish -c Release -o D:\mt4-manager\publish\$MANAGER &&
cd "D:\mt4-manager\publish\$MANAGER" &&
powershell -Command "(Get-Content appsettings.json -Raw) -replace 'devDemo','$MANAGER' | Set-Content appsettings.json" &&
pm2 start "manager-api-v2.exe" --name "manager-api-$MANAGER" &&
echo start success
别忘了“高级”菜单中的配置
释义:
进入d盘,进入manager-api-v2文件夹(项目根目录),
发布项目到指定文件夹
进入发布后的文件夹项目根目录
使用powershell命令,将appsettings.json中配置的环境变量值,由devDemo替换为动态参数值$MANAGER,对应参数化构建中的$MANAGER中的选项
使用pm2命令运行.net core程序,名称为manager-api-(动态参数)
输出 start success
到此,整个的配置过程就完成了。查看结果

如有错误,请大佬指正!
ASP.Net Core使用Jenkins配合pm2自动化部署项目的更多相关文章
- 使用Jenkins 安装和自动化部署项目
安装 jenkins 安装方法可以使用war 安装 或者服务安装.我这里使用 rpm 安装 第一步: 我们使用的 centos ,选着这个,直接 下载传到服务器上.或者 复制下载链接 到 服务器上 ...
- docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)
前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...
- Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(三):搭建jenkins集群环境
写在前面 大家可以看到本文的配图,左边是jenkins单机环境,右边是jenkins集群.个中区别,不言而喻,形象生动. 前面我分别介绍了.net core 程序的多种部署方式(无绝对孰优孰劣): 1 ...
- Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(二):部署
前面又是废话 我之前写过: Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署 Asp.Net Core 程序部署到Linux(centos)生产环境(二):doc ...
- Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(一):Jenkins安装
2019/1/31更新,经过我一段时间的使用 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用d ...
- ASP.NET Core & Docker & Jenkins 零基础持续集成实战
原文:ASP.NET Core & Docker & Jenkins 零基础持续集成实战 一.本系列教程说明 源代码管理工具:Gogs 持续集成工具:Jenkins 容器:Docker ...
- Jenkins+Gitlab+Ansible自动化部署(二)
接Jenkins+Gitlab+Ansbile自动化部署(一):https://www.cnblogs.com/zd520pyx1314/p/10210727.html Ansible的配置与部署 工 ...
- Jenkins+Gitlab+Ansible自动化部署(三)
接Jenkins+Gitlab+Ansible自动化部署(一)https://www.cnblogs.com/zd520pyx1314/p/10210727.html 和(二)https://www. ...
- Jenkins+Gitlab+Ansible自动化部署(六)
Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs. ...
- Jenkins+Gitlab+Ansible自动化部署(一)
首先准备实验环境 虚拟机 主机名 IP地址 服务 系统版本 内核版本 Vmware Workstation 14 gitlab.example.com 192.168.244.130 gitlab ...
随机推荐
- ubuntu18.04 heirloom-mailx 通过外部SMTP服务器发送邮件
配置软件源ubuntu18.04上无法直接安装heirloom-mailx,需要添加软件源 sudo vi /etc/apt/sources.list写入 deb http://cz.archive. ...
- Docker 发布镜像
发布镜像 在 Docker Hub 发布镜像 登陆到 Docker Hub docker login 标记镜像并推送到 Docker Hub docker tag <image>:< ...
- 神经网络之卷积篇:详解卷积神经网络示例(Convolutional neural network example)
详解卷积神经网络示例 假设,有一张大小为32×32×3的输入图片,这是一张RGB模式的图片,想做手写体数字识别.32×32×3的RGB图片中含有某个数字,比如7,想识别它是从0-9这10个数字中的哪一 ...
- Vue SPA项目如何修改网站标题
直接贴 门户项目代码 // 全局router 直接挂载路由导航守卫 router.beforeEach((to, from, next) => { if (to.meta.title) { va ...
- 函数防抖-TS实现
什么是函数防抖? 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时 实现很简单,大体就是设置一个变量来记录定时器,每次触发事件的时候就看定时器是否存在,如果存在清除一下,然后重新开启一 ...
- manim边学边做--常用多边形
多边形是常见的几何结构,它的形状看似千变万化,其实都可以由几种常用的多边形组合而成. 本篇介绍manim中提供的几个绘制常用多边形的模块. Triangle:等边三角形 Square:正方形 Rect ...
- 海光 FTPM 运行报错:Fapi_Provision_Finish() ErrorCode (0x00060025) No EK certificate found.
使用的是海光 CPU 提供的基于固件的 FTPM,错误原因是海光没有给 TPM 提供相应的 EK 证书.从而导致Fapi_Provision()接口无法通过证书的校验.关于Fapi_Provision ...
- CSS – 实战 Font
前言 这篇想整理一下在网页开发中, 字体是如果被处理的. 先看完: 平面设计 – 字体 CSS – Font / Text 属性 CSS – Font Family CSS – word-break, ...
- 禁用QQ自动升级(实测可用)
事件起因: 某客户电脑QQ从怀旧版(9.7)自动升级到NT版本(9.9)版本,新版本由于消息通知功能不能直接查看,老版本右下角消息闪烁,鼠标放上去便可以看到有几个联系人的消息,因此客户强烈要求版本回退 ...
- WiFi基础(五):802.11帧结构与WiFi控制帧、管理帧、数据帧
liwen01 2024.09.22 前言 前面介绍了 WiFi 的工作原理和 WiFi 的接入过程,这里将通过分析 WiFi 具体数据包结构,让你对 WiFi 工作原理和接入过程有一个更进一步的了解 ...