使用nuxt创建个人博客系列-24 通过pm2和github提交应用
338
2020-01-24 18:37
10 个月前
添加自己的公钥到github上
查看有没有生成~/.ssh/id_rsa.pub,如果你看了我上一章节,应该是已经生成的
$ cat ~/.ssh/id_rsa.pub #得到这一串秘钥后靠背出来
如果你没生成秘钥,则继续打命令
$ ssh-keygen -t rsa #一路回车下去就行,让后执行上面的命令,拷贝出来,
$ 最好设置一下git的用户名和邮箱
$ git config --global user.name "guojian"
$ git config --global user.email 424139777@qq.com
然后打开githubkeys这里添加ssh-key(就是上面拷贝的那一串东东),没有登录会跳到登录页面。至此服务器上就可以拉取github上面的代码了
使用pm2部署
pm2可以一键部署到线上,可以集群,可以做到服务重启,反正就是很多作用,我就用上了一个自动部署功能。pm2官网
要使用pm2自动部署,需要使用秘钥登录,和添加known_hosts
$ ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts #把github.com添加到known_hosts
博客上传到github
首先在github上创建项目 github-new
然后把本地的代码提交到刚才新增的项目里,首先添加pm2配置文件 目录:ecosystem.json 说明: path,需要再自己的服务器上创建目录,我的配置是/data/www/myblog/production,所以要创建这个目录,最好给他们是777权限,我怕会因为权限问题提交失败。
{
"apps":[
{
"name":"app",
"script":"build/main.js",
"env":{
"NODE_ENV": "development",
"COMMON_VARIABLE":true
},
"env_dev":{
"NODE_ENV":"dev1"
},
"env_production":{
"NODE_ENV":"production"
}
}
],
"deploy":{
"production":{
"user":"root", //用户
"host":["1**.24.17.1**"], //服务器地址
"ref":"origin/master",
"key":"/Users/guojian/key/id_rsa", //秘钥
"port":"22",
"repo":"git@github.com:***/***.git", //github地址
"path":"/data/www/myblog/production", // 需要先创建文件夹
"post-deploy":"npm install&& pm2 startOrRestart ecosystem.json --env production",
//部署命令,如果拉取不成功,建议在npm 前面执行git pull
"pre-deploy-local":"echo 'Deploy Done!'",
"env":{
"NODE_ENV":"production"
}
}
}
}
正式部署到线上
#首先提交到github
$ git init
$ git remote add origin git@github.com:***/***.git
$ git fetch
$ git add .
$ git commit -m 'first commit'
$ git push origin master
#执行pm2 deploy
$ pm2 deploy ecosystem.json production setup #成功后执行
$ pm2 deploy ecosystem.json production #执行这句后会登录到服务器上,执行上面配置的命令
提示:
pm2 deploy ecosystem.json production setup在项目里只会执行一次。
以后每次执行 pm2 deploy ecosystem.json production,都要先把代码提交到github上
下一章节我们会讲到使用nginx转发到node服务上,下一节我们讲一下nginx。