一、先在服务器上实现远程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