pm2自动化部署node项目到阿里云服务器

daduryi 2020-05-09

阿里云服务器对应的操作系统是centos

1. 电脑端和阿里云服务器端全局安装pm2

  安装这条命令前需要先确保阿里云服务器端安装了node,npm,可以参考https://www.cnblogs.com/zhenfeng95/p/12848819.html安装,然后npm install pm2 -g

2. 在项目根目录下初始化部署脚本的文件

  在项目根目录下新建一个deploy.yaml文件

# deploy.yaml

apps:

    - script: ./start.js       # 入口文件

      name: ‘app‘              # 程序名称

      env:                     # 环境变量

        COMMON_VARIABLE: true

      env_production:

        NODE_ENV: production

deploy:                     # 部署脚本

    production:               # 生产环境

      user: lentoo            # 服务器的用户名

      host:     # 服务器的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. 配置git的ssh免密认证

  在服务器中生成rsa公钥和私钥,前提服务器要安装git,没有安装的先安装git,可以参考https://www.cnblogs.com/zhenfeng95/p/12848819.html安装,然后通过ssh-keygen -t rsa -C ""生成公钥,在~/.ssh目录下有 id_rsa和 id_rsa.pub两个文件,其中id_rsa.pub文件里存放的即是公钥key,登录到GitHub,点击右上方的头像,选择settings ,点击Add SSH key,把id_rsa.pub的内容复制到里面即可。

4. 使用pm2部署项目

  每次部署前先将本地的代码提交到远程git仓库,首次部署:pm2 deploy deploy.yaml production setup ,部署完成后,既可登陆服务器查看配置的目录下是否从git上拉取了项目,再次部署,

pm2 deploy deploy.yaml production update。

5. 阿里云后台添加安全组

  (1)选择实例列表 --》 更多 --》 网络和安全组 --》安全组配置

  pm2自动化部署node项目到阿里云服务器

  (2)选择配置规则

  pm2自动化部署node项目到阿里云服务器

  (3)在入方向定义自己的端口号

  pm2自动化部署node项目到阿里云服务器

pm2常用命令:

启动一个node程序

    pm2 start start.js

启动进程并指定应用的程序名

    pm2 start app.js --name application1

集群模式启动

    // -i 表示 number-instances 实例数量

    // max 表示 PM2将自动检测可用CPU的数量 可以自己指定数量

    pm2 start start.js -i max

添加进程监视

    // 在文件改变的时候会重新启动程序

    pm2 start app.js --name start --watch

列出所有进程

    pm2 list

    pm2 ls // 简写

从进程列表中删除进程

    // pm2 delete [appname] | id

    pm2 delete app  // 指定进程名删除

    pm2 delete 0    // 指定进程id删除

删除进程列表中所有进程

    pm2 delete all

查看某个进程具体情况

    pm2 describe app

查看进程的资源消耗情况

    pm2 monit

重启进程

    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

pm2参考链接:https://www.jianshu.com/p/e15fd72727fe

阿里云服务器防火墙相关命令:https://www.cnblogs.com/yuanzipeng/p/10813494.html

 

    

 

相关推荐