使用spc2实现项目的多环境自动化部署


一、scp2介绍

随着技术的发展,如今开发项目已经成为了一项复杂的任务。为了保证项目的质量和可靠性,需要开发人员和运维人员之间进行高效的沟通和协作。因此,自动化部署已成为现代软件开发中不可或缺的一部分。

scp2是一个高效的自动化部署工具,它可以帮助开发人员在多个环境之间快速、安全的部署他们的应用程序。在本文中,我们将讨论如何使用SPC2实现项目的多环境自动化部署。

二、先说思路

1、使用cross-env修改系统常量,使程序知道接下来的操作要想那个服务器自动部署
2、使用ssh2操作服务器,将服务器上原有的项目改名,并放入记录文件夹
3、使用scp2将打包后的文件发送到对应的服务器的指定位置

三、示例代码

var scpClient = require("scp2");
var Client = require("ssh2").Client; //连接远程服务器
var dayjs = require("dayjs");
const load = process.env.TARGET;
let nowTime = dayjs().format("YYYY.MM.DD.HH.mm.ss");
let temp = {
	dev: {
		host: "152.136.XX.XX", //服务器IP地址
		port: 22, //SSH端口号
		username: "ssh用户名", //服务器SSH登录用户名
		password: "ssh密码",
		shell: 
			`cd /www/server/project\n` +
			`mv test test-${nowTime}-replace\n` +
			`mv test-${nowTime}-replace record/`,
		filePath: "test",
		path: "/www/server/project/test",
	},
};

var conn = new Client();
conn
	.on("ready", function () {
		console.log("ssh ready");
		conn.exec(temp[load].shell, function (err, stream) {
			if (err) throw err;
			stream
				.on("close", function (code, signal) {
					// 在执行shell命令后,把开始上传部署项目代码放到这里面
					console.log("正在部署至" + temp[load].host);
					scpClient.scp(temp[load].filePath, temp[load], (err) => {
						if (err) {
							console.log("部署失败", err);
							throw err;
						} else {
							console.log("部署成功");
						}
					});
					conn.end();
				})
				.on("data", (data) => {
					console.log("STDOUT: " + data);
				})
				.stderr.on("data", (data) => {
					console.log("STDERR: " + data);
				});
		});
	})
	.on("error", function (err) {
		console.log("error" + err);
	})
	.connect({
		host: temp[load].host,
		port: temp[load].port,
		username: temp[load].username,
		password: temp[load].password,
	});

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值