一.安裝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
