使用PM2实现自动部署代码到Ubuntu服务器
140 浏览量
更新于2024-08-29
收藏 220KB PDF 举报
"这篇文章主要介绍了如何使用PM2进行自动部署代码的步骤流程,涉及环境条件、本地与服务器环境的SSH设置、Git配置以及PM2的配置文件设置。"
在进行自动化部署时,PM2作为一个流行的Node.js应用的进程管理器,提供了方便的部署功能。以下是对文章中提到的知识点的详细说明:
### 0x01 环境条件
在进行自动部署之前,你需要确保本地和服务器环境满足以下条件:
1. **本地环境**: Windows 10上的WSL(Windows Subsystem for Linux)运行Ubuntu 16.04。
2. **服务器环境**: Ubuntu 18.04。
3. **软件安装**: 在两个环境中都需要安装PM2和Git。PM2用于管理Node.js应用程序,Git则用于版本控制。
### 0x02 设置本地环境与服务器环境Gitee仓库SSH
#### 本地环境
1. **生成SSH密钥**: 使用`ssh-keygen -t rsa -b 2048 -f pm2deploy -C "PM2deploysshkey"`生成名为`pm2deploy`的SSH密钥对。
2. **加载SSH密钥**: 使用`ssh-agent bash -l -i`启动SSH代理,并通过`ssh-add pm2deploy`将密钥添加到代理中。
3. **验证SSH配置**: 添加公钥到Gitee个人账户,然后在本地运行`git -T git@gitee.com`,如果返回“successfully”,则表示SSH设置成功。
#### 服务器环境
1. **添加SSH部署公钥**: 与本地环境类似,但服务器的公钥应添加到Gitee的部署公钥中。
2. **配置Git**: 修改`.git/config`文件,将`origin`的URL改为SSH别名,例如`gitee`。
### 0x03 配置Git
1. **修改远程仓库地址**: 使用`vim ~/.git/config`打开配置文件,将`gitee.com`替换为别名`gitee`,确保服务器和本地的别名一致,但证书仍保持各自环境的设置。
### 0x04 配置PM2
PM2的自动部署主要依赖于`ecosystem.config.js`配置文件。配置主要包括:
1. **定义应用**: 指定Node.js应用程序的位置、启动命令等。
2. **部署设置**: 配置部署的目标服务器、用户、SSH密钥路径等信息。
3. **钩子函数**: 可以设置预部署和后部署脚本,如代码拉取后的构建过程。
4. **自动更新**: PM2能够监控代码仓库的变更,当检测到新的提交时,会自动拉取并重启应用。
在确保所有配置完成后,PM2会自动监控代码仓库,一旦检测到新提交,就会自动部署到服务器上,并根据配置文件重启应用,从而实现无缝的自动化部署。
请注意,实际部署过程中可能还需要处理权限问题、错误日志跟踪、环境变量设置等多个环节,这些都需要根据具体项目的需求进行细致的配置和调试。
2021-01-02 上传
2020-10-17 上传
2021-07-04 上传
2020-10-17 上传
2024-02-22 上传
2021-02-16 上传
2021-05-11 上传
2010-08-18 上传
点击了解资源详情
weixin_38707217
- 粉丝: 3
- 资源: 903
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查