一.安装git:
1.安装:
yum install -y git
2.查看版本:
git version
二.安装node:
方案一:(推荐)
安装Node.js版本管理器 (宝塔)
方案二:
yum方式安装
yum install nodejs 安装后是老版本
方案三:wget
yum install -y wget 安装wget
wget https://nodejs.org/dist/v16.13.1/node-v16.13.1.tar.gz 下载nodejs
xz -d node-v9.3.0-linux-x64.tar.xz 解压 tar -xf node-v9.3.0-linux-x64.tar
ln -s ~/node-v9.3.0-linux-x64/bin/node /usr/bin/node 部署bin文件
ln -s ~/node-v9.3.0-linux-x64/bin/npm /usr/bin/npm
ln -s ~/node-v9.3.0-linux-x64/bin/npm /usr/bin/npx
node -v 测试
npm
npx
方案四:
安装pm2管理器 ui (宝塔)
三.安装pm2:(如果上步使用方案四,此步安装可以忽略)
1.安装:
npm install pm2 -g 安装
常用命令:
pm2 start start.js 启动node程序
pm2 start app.js --name application1 启动进程并指定应用的程序名
pm2 start start.js -i max 集群模式启动 ,-i 表示 number-instances 实例数量;max 表示 PM2将自动检测可用CPU的数量 可以自己指定数量
pm2 start app.js --name start --watch 在文件改变的时候会重新启动程序
pm2 list 简写pm2 ls 列出所有进程
pm2 delete app 指定进程名删除 pm2 delete 0 指定进程id删除
pm2 delete all 删除进程列表中所有进程
pm2 describe app 查看某个进程具体情况
pm2 monit 查看进程的资源消耗情况
pm2 restart app 重启指定名称的进程
pm2 restart all 重启所有进程
pm2 logs app 查看该名称进程的日志
pm2 logs all 查看所有进程的日志
pm2 startup centos 开启启动设置,此处是CentOS系统,其他系统替换最后一个选项(可选项:ubuntu, centos, redhat, gentoo, systemd, darwin, amazon)
pm2 save 保存
四.通过pm2配置文件来自动部署项目(本章核心)
1.在项目根目录下新建一个 deploy.yaml 文件
内容:
# deploy.yaml apps: - script: ./start.js # 入口文件 name: 'app' # 程序名称 env: # 环境变量 COMMON_VARIABLE: true env_production: NODE_ENV: production deploy: # 部署脚本 production: # 生产环境 user: lentoo # 服务器的用户名 host: 192.168.2.166 # 服务器的ip地址 port: 22 # ssh端口 ref: origin/master # 要拉取的git分支 ssh_options: StrictHostKeyChecking=no # SSH 公钥检查 repo: https://github.com/**.git # 远程仓库地址 path: /home # 拉取到服务器某个目录下 pre-deploy: git fetch --all # 部署前执行 post-deploy: npm install && pm2 reload deploy.yaml --env production # 部署后执行 env: NODE_ENV: production
2.配置git的ssh免密认证
使用部署公钥即可:参考码云gitee官网提供的配置ssh
https://gitee.com/help/articles/4181#article-header0
3.使用pm2部署项目:
pm2 deploy deploy.yaml production setup (仅首次执行)
pm2 deploy deploy.yaml production upddate 更新
4.常见错误:
错误1:
pm2 deploy deploy.yaml production setup 执行此命令时,如果不能正常。
解决:
请使用git命令去执行:pm2 deploy deploy.yaml production setup
错误2:
(ECDSA) to the list of known hosts.
解决:
ssh-keyscan -t rsa gitee.com>>~/.ssh/known_hosts //码云 ssh-keyscan -t rsa github.com>>~/.ssh/known_hosts github