使用背景
当我们需要将项目部署到远程线上服务器时;传统的方法可能就是:
太过手动化,麻烦,操作繁琐。
现代自动化部署
环境:本地(Mac);远程服务器(CentOS)
使用工具:Git、pm2、node
;
需知概念:ssh秘钥登陆
;Github添加Deploy Keys
1、服务器环境部署
基本工具安装:git、pm2、node
2、ssh服务器免密登陆
服务器生成秘钥对
由于使用的是百度云服务器,里面可以直接界面生成秘钥对,然后下载到本地的是一个xxx.txt文件
. 此时登陆可以使用ssh -i xxx.txt[下载的公钥路径] name@domain
报错:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'server-key.txt' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "server-key.txt": bad permissions
大概意思就是,私钥文件不能被其他人所访问。可能考虑到如果被别人获取到,就可能对服务器安全造成影响,所以需要从新设置下秘钥文件的权限
重新设置秘钥文件权限:chmod 600 server-key.txt
,取消其他用户Read权限
但是,使用ssh name@domain
形式还是没法直接登入;追其原因,发现因为不是本地直接生成的秘钥对;
所以需要使用ssh-add -K ~/.ssh/xxx.txt[下载公钥文件]
(-K
表示永久存储式,如果不使用者每次开机后需要重新ssh-add),就像是本地生成秘钥对然后部署到服务器需要将秘钥追加到ssh认证文件一个道理;
ssh name@domain
可以正常免密登陆啦!(配置这种形式登陆后面pm2需要使用)
配置快捷登录(附加)
1. 进入ssh目录:cd ~/.ssh
2. 创建config文件: touch config
3. 进入config配置文件配置:vi config
4. :wq!保存退出
5. 完成后可以直接使用:ssh lwh 登陆
在Github上添加Deploy Keys
服务器生成秘钥
复制秘钥内容,添加到Github上对应的项目仓库Settings下的Deploy keys
中
配置Deploy keys
,使得服务器可以通过ssh拉取项目仓库;
配置pm2
配置ecosystem.config.js
;具体pm2
配置及基本使用介绍,戳~使用pm2配置生产环境
开始部署
报错
appledeMBP:back-server-api apple$ pm2 deploy ecosystem.config.js production
--> Deploying to production environment
--> on host 106.12.132.188
○ deploying origin/master
○ executing pre-deploy-local
○ hook pre-deploy
bash: 第 0 行:cd: /lwh/www/source: 没有那个文件或目录
○ fetching updates
○ full fetch
bash: 第 0 行:cd: /lwh/www/source: 没有那个文件或目录fetch failed
Deploy failed
1
需要先初始化服务器应用:pm2 deploy ecosystem.config.js production setup
,
然后:pm2 deploy ecosystem.config.js production
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。
新闻热点
疑难解答