首页
学习
活动
专区
圈层
工具
发布

使用Node.js、pm2和ssh2模块实现一个简单的Node.js项目部署脚本

本文将介绍如何使用Node.js和ssh2模块实现一个简单的部署脚本,将本地的项目文件上传到远程服务器上。我们将使用dotenv模块来管理环境变量,以及child_process模块来执行命令行操作。...首先,我们需要安装ssh2和dotenv模块:npm install ssh2 dotenv --save然后,我们需要在项目根目录下创建一个.env文件,用来存放一些敏感的配置信息,例如服务器的IP地址...('dotenv').config();其中,fs模块是Node.js内置的文件系统模块,用来读写文件;Client是ssh2模块提供的一个类,用来创建SSH连接;dotenv模块是用来加载.env文件中的配置信息到...具体来说,我们需要做两件事:一是执行npm run build命令来构建项目;二是将构建后的文件上传到远程服务器上。...欧克,现在我们写一下将本地目录下的所有文件上传至服务器上指定目录的代码,使用sftp进行文件上传: // 将本地目录下的所有文件上传至服务器上指定目录 const uploadPromise

87310

在使用angular2中使用nodejs创建服务器,并成功获取参数

首先创建服务器: 1.最好使用express,这个库有更多的api,方法:npm install express --save; 2. npm install @types/express --save...; 安装nodemon 可以让服务器自动重启, 方法:npm install nodemon; 在启动服务器的时候用:nodemon build/...js; 这样服务器就算启动完成了. /** *...") }); 接着在本地从创建好的服务器上获取数据: import { Component, OnInit } from '@angular/core'; import {Observable} from....对应 的需要引入Observable from "rxjs" http服务已经在app.module中引入过了,这里需要声明在构造函数里头,并引入Http from "@angular/Http";...接着就是坑了,写完后,发现还是获取不到服务器上的数据: 接下来还有配置: 在根目录新建一个文件:proxy.conf.json  内容为: { "/api":{ "target":"http

5.5K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python 也是可以的!!

    如果你手边恰好有这些专业的工具,而且你恰好也擅长使用这些工具,那很好。 本文提供了一种思路,在你手边没有那些专业工具或者你暂时还不想接触那些专业工具的时候,也能帮你从繁琐的打包、部署工作中解放出来。...tar 包; sftp:上传 tar 包到远程服务器; ssh:在远程服务器上,停止运行中的旧应用;启动新应用; browser:打开浏览器,看升级是否成功; 场景2:打包、部署基于 Maven、SpringBoot...的后端应用; 每完成一个后新功能或每修正一个bug,就需要: mvn clean package:在本地对项目就行构建; sftp:上传构建结果(jar)到远程服务器; ssh:在远程服务器上,停止运行中的旧应用...subprocess 模块首先推荐使用的是它的 run 方法,更高级的用法可以直接使用 Popen 接口。...例如: def npm_build(prj_path): subprocess.run([r'C:\Program Files\nodejs\npm.cmd', 'run', 'build'],

    52330

    Gulp折腾之路(III)

    当然,Gulp很强大,辅助完成些脚本,也是很好的存在,譬如生成雪碧图、Sftp服务器上传等;且在2016年中也更新到4.0——一个很吸引人的版本。...(Update@17/01/16) Gulp-sftp的喜忧路 一路从Xftp,winScp,Sublime text3的sftp插件等迁移至gulp-sftp,一路都充满欢喜:毕竟在前端项目模块化、工程化之后...:607:12) 查究了一番,原来是gulp-sftp不存在的远程文件夹不容创建(忧)。...所以合并出来的文件我们要自行压缩,压缩以后调用 gulp-rev 负责在文件名后追加hash(如果项目使用CDN容易造成缓存的话)。...众所周知在写js时候,文件引入总要有一定顺序,至少依赖了某个文件,总要在使用该文件之前引入;即便是合并压缩到一起。

    1.3K50

    使用Python Paramiko创建文件目录并上传文件的终极指南

    引言 在网络运维和自动化领域,SSH(Secure Shell)协议是连接和管理远程服务器的常用手段。而Paramiko是一个用于进行SSH2会话的Python库,它支持加密、认证和文件传输等功能。...如果没有安装,可以通过pip轻松完成: pip install paramiko 安装完成后,在Python脚本中导入所需的模块: import paramiko 二、创建SSH连接 在开始任何操作之前...ssh_client.close() 六、上传和下载文件夹 要上传文件夹,可以使用Paramiko的SFTPClient类的put()方法来逐个上传文件,也可以使用put_recursive...,你现在应该能够使用Python的Paramiko库来创建远程文件目录并上传文件。...这些技能不仅能够提高你的工作效率,还能够让你在自动化运维的道路上更进一步。记得在实际操作中多加练习,以便更好地掌握这些有用的工具。

    20410

    Linux服务器快速卸载安装node环境(简单上手)

    这篇文章主要介绍了Linux服务器快速卸载安装node环境(简单上手)1、先卸载npmsudo npm uninstall npm -g2、卸载nodeyum remove nodejs npm -y看看是否有残留进入.../usr/local/lib 删除所有 node 和 node_modules文件夹进入 /usr/local/include 删除所有 node 和 node_modules 文件夹进入 /usr/.../usr/local && wget https://nodejs.org/dist/v14.17.5/node-v14.17.5-linux-x64.tar.xz2、Node.js 解压下载得到的...-linux-x64.tar3、Node.js 环境配置1.进入配置文件: vi /etc/profile2.按键 i 进入编辑模式,在文件的最后面新行添加以下三行代码:export NODE_HOME...用SFTP(不知道SFTP是什么的自行百度) 连接服务器找到根目录/etc/profile文件打开,把下面代码复制粘贴到最后一行,保存然后再执行source /etc/profile 效果一样的。

    7.1K40

    一篇文章让你快速学习Python编程自动化开发学习9-paramiko模块

    paramiko模块 paramiko模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。...WarningPolicy: 发出警告,会先报个错,但是不中断,程序还会继续执行 know_hosts文件 在linux系统中,用户家目录下会有一个隐藏文件夹“.ssh”。...如果你这台机器没有使用过ssh,可能还没有自动创建这个文件夹。可以在家目录使用命令 $ ls -a 查看到。...sftp传文件 通过paramiko模块还可以使用sftp进行上传和下载 ssh密钥验证 如果要自动登录,那么需要把用户名和密码事先存放在文件中。...看下面sftp的例子就可以了 sftp也可以使用密钥验证 到这里,应该就没太多问题了

    801100

    Linux多台服务器共用密钥ssh自动登陆

    如果是这样的话,同一对秘钥可以使用在多台服务器上,因为对于服务器和客户端来说,他们在通信的时候只需验证秘钥和公钥是否匹配。  ...即存在一个global的公钥存放在ssh服务器上,而多台客户端则使用的同一秘钥登陆ssh服务器上。...1、使用CRT生成秘钥对,将公钥上传到linuxA,成功登陆后,cpoyA机中的公钥至B机中,实现CRT自动登陆B机,验证公钥为通用。...里面设置登录模式为PublicKey,并选择刚刚创建的my_rsa文件作为私钥 5.重启Linux服务器上SSH服务器(测试貌似不用重启服务也能生效) #service sshd restart 或者...补充安全问题:由于.ssh文件夹和privatekey都权限为700和600,同时sftp服务器只开通sftp登陆权限和控制home文件目录,只要妥善保管privatekey,在ssh协议下是没有安全顾虑的

    3.1K10

    基于Python实现前端自动化打包部署

    难点分析 要想实现打包,核心需要考虑下面2个问题: 在 python 脚本中如何去执行前端的打包命令npm run build(这里以vue项目作为测试) 在 python 脚本中如何连接服务器将打包好的问题上传到服务器的指定目录中去...关于服务器连接这一块,可以使用python的一个第三方模块 paramiko,它实现了SSHv2协议,允许我们直接使用SSH协议对远程服务器执行操作,关于 paramiko 的更多知识和用法,请戳这里...文件上传 打包结束后,我们需要将打包好的 dist 文件夹下的文件上传到服务器,因此,我们需要创建一个文件上传方法,我们通过 paramiko.SFTPClient 方法创建 sftp 来完成 该方法入参需要两个参数...创建服务器文件夹 def check_remote_dir(self, sftp, target_path): try: # 判断文件夹是否存在 sftp.stat...可以看到python 在语法上的简洁和优雅,这一点也是让我感觉还是挺舒服的,对我个人来说,可能后面更多是作为一门工具语言来使用,最大程度的去解决实际问题。

    93130

    Nodejs安装教程

    node -v 显示安装的nodejs版本 npm -v 显示安装的npm版本 四、修改全局模块下载路径 1、我希望将全模块所在路径和缓存路径放在我node.js安装的文件夹中...,则在我安装的文件夹【D:\Nodejs】下创建两个文件夹【node_global】及【node_cache】如下图: 创建完两个空文件夹之后,跟之前操作一样,在键盘按下【win+R】键,输入cmd,...说明: prefix = 创建的node_global文件夹所在路径 cache = 创建的node_cache文件夹所在路径 ——————————————————————————- npm.../ 3、检查配置是否成功 npm config get registry 六、全局安装基于淘宝源的cnpm 说明:由于npm的服务器在海外,所以访问速度比较慢,访问不稳定 ,cnpm的服务器是由淘宝团队提供...但是一般cnpm只用于安装时候,所以在项目创建与卸载等相关操作时候我们还是使用npm。

    4.3K70

    python模块paramiko与ssh

    paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。...可以通过strip进行字符串的处理。 在函数调用过程中需要注意的是,IP、username、passwd都是属于字符串型的,所以需要加引号。...注:本处的目录下所有文件进行下载或上传的示例中,在遇到目录下还有嵌套的目录存在时,会将目录也当做文件进行处理,所以如果想要更加的完美的话,可以通过引入stat模块下的S_ISDIR方法进行处理 paramiko.transport...项目上的demo里获取。...六、总结 paramiko模块是一个比较强大的ssh连接模块,以上的示例只是列出了该模块的一些简单的使用方法,还可以使用threading模块加块程序并发的速度;也可以使用configparser模块处理配置文件

    1.7K10

    SecureFX for Mac(ftp文件传输工具)v9.3.2激活版

    SecureFX Mac版是一款支持普通FTP标准和安全数据传输标准(SFTP 或者 在SSH2 上的FTP)的FTP客户端软件,有着易用的、类似于资源管理器的用户界面。...SecureFX ftp传输工具支持三种文件传输协议:FTP、SFTP 和 FTP over SSH2。可以提供安全文件传输。...当目录结构相同时,同步文件浏览选项会以锁步方式更改本地和远程文件夹。会话管理器可停靠会话管理器可让您快速连接到会话。过滤条有助于在会话数据库中快速定位会话。...站点同步 SecureFX站点同步处理本地和远程系统之间或两个远程系统(服务器到服务器)之间的上载,下载和真实镜像传输。使用通配符支持过滤文件选择,并将常用配置存储在同步数据库中以便快速调用。...书签设置和重用书签以节省访问定期使用的目录位置的时间,特别是如果目录有多个级别。书签管理器允许您添加,删除和编辑书签以及从其他会话复制书签。积分与SecureCRT集成可节省共享会话和设置的时间。

    1.5K30

    自己部署 Node.js 版本的 Wafer2 Demo

    自行部署适用于想将腾讯云 Wafer SDK 和 Demo 部署在自己的服务器上以获得更高的灵活性和操纵权限的用户。...,我们可以通过 SFTP 把本地的文件上传到服务器上,通过以下命令检查 sftp 状态: service sshd status 看到输出的信息中有 active (running) 则表示 sshd...Nginx 目录下的证书文件通过 SFTP 上传到服务器的 /data/release/nginx 目录,如果没有这个目录则新建: [图片] 上传完证书以后,可以开始配置 Nginx,进入服务器的 /...在弹出的页面中输入数据库账号密码进入数据库管理控制台,点击菜单栏的“返回 PMA”,在界面中点击左侧栏中的“新建”,输入数据库名为 cAuth,排序规则为 utf8mb4_unicode_ci,点击“创建...最后启动 Node.js 程序 node app.js 完成 顺利完成以上操作,就完成了 Wafer Demo 在自己服务器上的部署。

    13.8K120

    python paramiko

    中执行C:\Python27\python进入python环境 输入import paramiko无错误提示则表示安装成功 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式...,进行远程服务器的连接了,下面我们就来给各位一起验证一下python模块paramiko与ssh安装与使用示例吧。...可以通过strip进行字符串的处理。 在函数调用过程中需要注意的是,IP、username、passwd都是属于字符串型的,所以需要加引号。...注:本处的目录下所有文件进行下载或上传的示例中,在遇到目录下还有嵌套的目录存在时,会将目录也当做文件进行处理,所以如果想要更加的完美的话,可以通过引入stat模块下的S_ISDIR方法进行处理 paramiko.transport...六、总结 paramiko模块是一个比较强大的ssh连接模块,以上的示例只是列出了该模块的一些简单的使用方法,还可以使用threading模块加块程序并发 的速度;也可以使用configparser模块处理配置文件

    1.7K10

    python的paramiko模块

    paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。  ...由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用...know_hosts文件中的主机 ssh.connect(ip,port,username,password)          # 连接远程服务器 2、方法二 import paramiko tus... = paramiko.SFTPClient.from_transport(t)    # 创建下载传输对象 sftp.get(localpath, remotepath)                 ...            stdin, stdout, stderr = ssh.exec_command(comm)  # 执行远程服务器上的脚本             out = stdout.readlines

    62630

    ElasticSearch 安装

    用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令: useradd itheima # 新增itheima用户 passwd itheima # 为itheima用户设置密码...===最大可创建文件数太小======= vim /etc/security/limits.conf # 在文件末尾中增加下面内容 itheima soft nofile 65536 itheima...在登陆和访问head插件地址和ElasticSearch前需要事先在服务器上安装和配置好ElasticSearch以及head插件。...下载Node 上一节我们已经安装好了Elasticsearch,接下来我们来安装head插件,由于elasticsearch-head插件是由nodejs语言编写,所以安装elasticsearch-head...等命令,我们可以使用 ln 命令来设置软连接: ln -s bin/npm /usr/local/bin/ ln -s bin/node /usr/local/bin/ 在/etc/profile

    61640

    新设备如何使用hexo博客

    在新设备上安装node JS后修改全局安装和缓存的路径 #这里修改成nodeJS目录 npm config set prefix "E:\nodejs" --nodejs会自动寻找该路径下的 node_modules...文件夹为实际存放全局模块的路径,这也是为啥叫prefix不叫global的原因;以 后安装的全局模块都会被放到D:\Program Files\nodejs\node_modules下,跟npm模块在...一个文件夹中 npm config set cache"E:\nodejs\node_cache" 修改后执行查看命令npm config ls查看修改结果 修改npm源 npm install...2.本地测试完成后hexo d推送到远端服务器失败的问题。 原因 ​ 远端服务器需要识别git推送的个人信息,由name和email组成,我们需要配置本地git的信息。...ssh-keygen -t rsa -C "email" ​ 会在本地生成一个.ssh的文件夹,打开公钥并复制。然后去github在设置里面添加即可。

    74440

    【nodejs原理&源码赏析(9)】用node-ssh实现轻量级自动化部署

    +PHP】 nodejs或相关框架+守护进程 Express Koa2 以上任何一种在服务器上运行起来后都可以担任Web服务器的角色,只是具备的扩展功能和应用场景有区别,Nginx基本上是正式环境部署的首选方案.../bin/www文件中修改端口号为期望的端口号(自动生成的是80端口),例如3001 将前端工程build出的包整体复制粘贴到/public目录中 此时在本地工程根目录下输入npm start后,在浏览器中...使用SSH工具(如Xshell或MobaXter)登录远程机器,假设为linux系统,输入unzip mydemo.zip解压压缩包,然后cd mydemo进入服务端工程,输入npm start即可在服务器上开启...但是如果此时SSH工具断开连接,就会发现express应用无法继续访问了,所以还需要一个守护进程来维持应用的启动状态,在服务端通过npm install pm2 -g来安装nodejs应用的部署管理模块...shell脚本来完成剩余的工作 涉及的几个模块包括实现SSH连接的node-ssh模块(底层是ssh2模块,这个模块是一个Promise封装),用于制作zip压缩包的archiver模块。

    2K20
    领券