使用PM2实现自动部署代码到Ubuntu服务器

0 下载量 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会自动监控代码仓库,一旦检测到新提交,就会自动部署到服务器上,并根据配置文件重启应用,从而实现无缝的自动化部署。 请注意,实际部署过程中可能还需要处理权限问题、错误日志跟踪、环境变量设置等多个环节,这些都需要根据具体项目的需求进行细致的配置和调试。