centos下实现pm2自动化部署

1,509 阅读1分钟

一、先在服务器上实现远程git的免密登陆权限

1.生成一组SSH密钥

ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' -C "qqq@qq.com"

qqq@qq.com是自己的绑定邮箱

2.将新生产的私钥生效

ssh-agent bash && ssh-add  ~/.ssh/id_rsa
exit

3.将下面命令输出的公钥复制

cat ~/.ssh/id_rsa.pub

4.然后centos下执行,git clone git@XXX.git

拉取代码成功说明配置好了。

二、实现本地到远程git的免密登陆权限,等同步骤一

三、实现本地免密登陆远程centos服务器

scp ~/.ssh/id_rsa.pub username@127.X.X.X:/root/.ssh/authorized_keys

username:用户名

127.X.X.X:你的远程ip地址

执行后会输入一次密码,然后显示下面信息,说明配置好了

id_rsa.pub                                    100%  402    10.2KB/s   00:00

四、开始pm2自动部署

1、全局安装pm2,

cnpm install pm2 -g

2、新建ecosystem.json,内容大致如下

{
    "apps" : [{
        "name"      : "admin",
        "script"    : "server.js",
        "env": {
            "COMMON_VARIABLE": "true"
        },
        "env_production" : {
            "NODE_ENV": "production"
        }
    }],
    "deploy" : {
            "production" : {
                "user" : "username",
                "host" : ["123.x.x.x"],
                "ref"  : "origin/master",
                "repo" : "git@xxx.git",
                "path" : "/data/blog/admin",
                "post-deploy" : "npm install && npm run build && pm2 startOrRestart ecosystem.json --env production",
                "ssh_options": "StrictHostKeyChecking=no",
                "env"  : {
                    "NODE_ENV": "production"
            }
        }
    }
}

更多配置参考官网:pm2.keymetrics.io/docs/usage/…

3、提交代码,

git add .
git commit -m 'change ecosystem'
git push origin master

4、初始化服务器(Server)应用,部署pm2配置

pm2 deploy ecosystem.json production setup

成功后会打印:

...
  ○ hook post-setup
  ○ setup complete
--> Success

5、服务器从git代码托管平台获取最新的代码,并使用pm2自动部署

pm2 deploy ecosystem.json production