pm2如何自动化部署nodejs新项目?

lxf2023-03-19 11:54:02

pm2如何自动化部署nodejs新项目?下边本文给大家介绍一下安装及配备pm2,以实现自动化部署node工程项目的方式,希望能帮助到大家!

pm2如何自动化部署nodejs新项目?

1、pm2介绍

pm2(process manager)是一个过程可视化工具,维护保养一个过程目录,能够用它管理方法你node过程,承担全部后台运行的进程,并查询node进程的状态,还支持性能监控,web服务等服务。

1.1、应用pm2管理的node程序流程带来的好处

  • 监视文档转变,重启程序流程

  • 适用性能监控

  • web服务

  • 程序崩溃重启

  • 网络服务器重启时自动重新启动

  • 自动化部署新项目

2、pm2安装与应用

2.1、全局性组装

npm install pm2 -g

2.2、命令

  • 运行一个node程序流程

        pm2 start start.js

pm2如何自动化部署nodejs新项目?

  • 运行过程并特定运用的程序名

        pm2 start app.js --name application1
  • 集群模式运行

        // -i 表明 number-instances 案例总数
        // max 表明 PM2将自动识别可以用CPU的总数 能自己特定总数
        pm2 start start.js -i max

pm2如何自动化部署nodejs新项目?

  • 加上过程监控

    // 在文档更改的时候就会重启程序流程
    pm2 start app.js --name start --watch

pm2如何自动化部署nodejs新项目?

  • 列举全部过程

        pm2 list
        pm2 ls // 缩写
  • 从过程页面上删掉过程

        // pm2 delete [appname] | id
        pm2 delete app  // 特定过程名删掉
        pm2 delete 0    // 特定过程id删掉
  • 删掉过程页面上全部过程

        pm2 delete all
  • 查询某一过程详细情况

        pm2 describe app

pm2如何自动化部署nodejs新项目?

  • 查看进程的能源消耗具体情况

        pm2 monit

pm2如何自动化部署nodejs新项目?

  • 重启进程

        pm2 restart app // 重新启动特定名字的进程
        pm2 restart all // 重新启动全部过程
  • 查看进程日志

        pm2 logs app    // 查询该名字进度的日志
        pm2 logs all    // 查询全部进度的日志
  • 设定pm2开机自启

打开启动设置,这里是CentOS系统软件,其他软件更换最后一个选择项(选择项:ubuntu, centos, redhat, gentoo, systemd, darwin, amazon)

    pm2 startup centos

随后按照提示必须输入指令开展键入

最终保存设置

pm2 save

3、根据pm2环境变量来自动部署新项目

保证服务器安装了pm2,未安装得话先组装

npm install pm2 -g

3.1 在工程目录下新创建一个 deploy.yaml 文档

# deploy.yaml
apps:
  - script: ./start.js       # 通道文档
    name: 'app'              # 程序流程名字
    env:                     # 系统变量
      COMMON_VARIABLE: true
    env_production:
      NODE_ENV: production

deploy:                     # 布署脚本制作
  production:               # 工作环境
    user: lentoo            # 云服务器登录名
    host: 192.168.2.166     # 云服务器ip详细地址
    port: 22                # ssh端口
    ref: origin/master      # 要获取的git支系
    ssh_options: StrictHostKeyChecking=no # SSH 公匙查验
    repo: https://github.com/**.git # 远程仓库详细地址
    path: /home              # 获取到网络服务器某一目录下
    pre-deploy: git fetch --all # 布署前实行
    post-deploy: npm install &&  pm2 reload deploy.yaml --env production # 布署后实行
    env:
      NODE_ENV: production

3.2 配备git的ssh免密支付验证

  • 在云服务器中形成rsa公钥和私钥,现阶段是 centos7 中进行

  • 前提条件服务端要组装git,未安装的先组装git,已下载的绕过

        yum –y install git
  • 形成密匙

        ssh-keygen -t rsa -C "xxx@xxx.com"

    在~/.ssh目录下有 id_rsa和 id_rsa.pub2个文档,在其中id_rsa.pub文档里储存的就是公匙key。

  • 登陆到GitHub,点一下右上角的个人头像,挑选settings ,点一下Add SSH key,把id_rsa.pub内容拷贝到里边就可以。

pm2如何自动化部署nodejs新项目?

3.3 应用pm2部署项目

每一次布署前先把当地的代码提交到远程控制git库房

  • 初次布署

pm2 deploy deploy.yaml production setup

布署结束后,既可以登陆服务器查看配置的目录下是不是从git上获取了新项目

  • 再度布署

pm2 deploy deploy.yaml production update

3.4 该布署步骤也适用前端项目

如vue-cli项目,全自动部署到服务器,自动完成npm run build 指令,产生的dist文件目录,特定到nginx的静态数据文件名称下。

4、可能遇到坑

  • 在window系统下 vscode的命令行程序,及其powershell实行部署的指令时,发生布署不成功

pm2 deploy deploy.yaml production setup

pm2如何自动化部署nodejs新项目?

解决方法:应用gitcmd去执行

大量node基本知识,请访问:nodejs 实例教程!!

以上就是关于教你如何安装及配备pm2,完成自动化部署node工程项目的具体内容,大量欢迎关注AdminJS其他类似文章!