PM2 ecosystem 服务器自动化部署

一:准备工作

1.1 :将项目上传至代码管理库(github,gitlab,bitbucket,等)

1.2 :Windows 和 服务器 都安装SSH,Git 工具。

二:开始

2.1 本地生成ssh key连接服务器

//根据邮箱生成ssh key
ssh-keygen -t rsa -C "..........@163.com"

//仔细看注释
//1.如果生成过一次ssh key,就别一路回车了。中间有一步是需要确认覆盖ssh key的。

2.2 将本地id_rsa.pub里面的内容复制下来(路径是C:\Users\Administrator\.ssh),添加进服务器~/.ssh/authorized_keys文件中。

(服务器中authorized_keys文件)

2.3 在根据2.1步骤在服务器生成ssh key。此处就不过多写了。

2.4 在将服务器中生成的id_rsa.pub复制下来(路径是~/.ssh),添加进github ssh key。(这里以github为例)

位置在(右上角个人中心/Settings)进去

三:编码(生成pm2部署文件)

3.1 找一个位置生成ecosystem.config.js部署文件。

3.2 编译部署文件。

module.exports = {
  apps: [{
    // 应用程序名称
    name: 'www', 
    // 应用程序目录,其他的路径配置如果是相对路径,则会相对此目录
    cwd: '/www/wlink/current/wlink_service/bin/',
    // 启动脚本
    script: 'www', 
    // Options reference: https://pm2.io/doc/en/runtime/reference/ecosystem-file/
    args: 'one two',
    instances: 'max',
    autorestart: true,
    watch: false,
    
    max_memory_restart: '1G',
    env_production: {
      NODE_ENV: 'production'
    },
  }],
  // 部署部份
  deploy: {
    production: {
      // 服务器用户名
      user: 'root',
      // 服务器 IP 地址
      host: '127.0.0.1',
      // git 分支
      ref: 'origin/master',
      // GIT 远程仓库地址
      repo: 'git@github.com:dlw1398287387/Wlink_Table.git',
      // 应用程序在服务器上的部署路径
      path: '/www/wlink',
      // 安装前在服务器执行的命令,可以是 “;” 分割的多个命名,也可以是本地的脚本路径
      // 'pre-setup': 'apt-get install git',
      // 安装后在服务器执行的命令,也可以是服务器上脚本的路径
      'post-setup': 'sh /www/wlink/current/wlink_service/www.sh',
      // 部署前在本地执行的命令,可以是 “;” 分割的多个命名
      'pre-deploy-local': "echo 'hello word'",
      // 部署后在服务器执行的命令
      'post-deploy': 'cnpm install && pm2 reload ecosystem.config.js --env production',
      env: {
        NODE_ENV: "production"
      }
    }
  }
};

*3.3 SSH 远程连接github (此处最重要)

//在服务器执行
ssh git@github.com

3.4 执行ecosystem.config.js部署文件

使用git工具进入到刚刚生成的部署文件目录。执行(此为部署,释义:将代码clone到服务器指定位置)

pm2 deploy ecosystem.config.js production setup

静静等待项目部署就OK。

3.5 执行ecosystem.config.js启动项目 (释义:pm2 start app.js)

pm2 deploy ecosystem.config.js production 

结束!

//PM2命令文档

# Fork mode
pm2 start app.js --name my-api # Name process

# Cluster mode
pm2 start app.js -i 0        # Will start maximum processes with LB depending on available CPUs
pm2 start app.js -i max      # Same as above, but deprecated.
pm2 scale app +3             # Scales `app` up by 3 workers
pm2 scale app 2              # Scales `app` up or down to 2 workers total

# Listing

pm2 list               # Display all processes status
pm2 jlist              # Print process list in raw JSON
pm2 prettylist         # Print process list in beautified JSON

pm2 describe 0         # Display all information about a specific process

pm2 monit              # Monitor all processes

# Logs

pm2 logs [--raw]       # Display all processes logs in streaming
pm2 flush              # Empty all log files
pm2 reloadLogs         # Reload all logs

# Actions

pm2 stop all           # Stop all processes
pm2 restart all        # Restart all processes

pm2 reload all         # Will 0s downtime reload (for NETWORKED apps)

pm2 stop 0             # Stop specific process id
pm2 restart 0          # Restart specific process id

pm2 delete 0           # Will remove process from pm2 list
pm2 delete all         # Will remove all processes from pm2 list

# Misc

pm2 reset <process>    # Reset meta data (restarted time...)
pm2 updatePM2          # Update in memory pm2
pm2 ping               # Ensure pm2 daemon has been launched
pm2 sendSignal SIGUSR2 my-app # Send system signal to script
pm2 start app.js --no-daemon
pm2 start app.js --no-vizion
pm2 start app.js --no-autorestart

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值