centos下实现pm2自动化部署

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

1.生成一组SSH密钥git

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

qqq@qq.com是本身的绑定邮箱npm

2.将新生产的私钥生效json

ssh-agent bash && ssh-add  ~/.ssh/id_rsa
exit
复制代码

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

cat ~/.ssh/id_rsa.pub
复制代码

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

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

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

3、实现本地免密登录远程centos服务器

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

复制代码

username:用户名app

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

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

id_rsa.pub                                    100%  402    10.2KB/s   00:00
复制代码

4、开始pm2自动部署

一、全局安装pm2,ui

cnpm install pm2 -g
复制代码

二、新建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/…

三、提交代码,

git add .
git commit -m 'change ecosystem'
git push origin master
复制代码

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

pm2 deploy ecosystem.json production setup

复制代码

成功后会打印:

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

复制代码

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

pm2 deploy ecosystem.json production

复制代码
相关文章
相关标签/搜索