167 lines
3.3 KiB
Markdown
167 lines
3.3 KiB
Markdown
# 部署指南
|
||
|
||
本文档详细说明了如何在 CentOS 系统上部署碰撞避免系统。支持在线和离线两种部署方式。
|
||
|
||
## 目录
|
||
|
||
- [系统要求](#系统要求)
|
||
- [在线部署](#在线部署)
|
||
- [离线部署](#离线部署)
|
||
- [部署后配置](#部署后配置)
|
||
- [常见问题](#常见问题)
|
||
|
||
## 系统要求
|
||
|
||
- CentOS 7 或更高版本
|
||
- 至少 2GB 可用内存
|
||
- 至少 10GB 可用磁盘空间
|
||
- root 权限
|
||
- Python 3.6 或更高版本
|
||
|
||
## 在线部署
|
||
|
||
如果服务器可以访问互联网,可以直接使用在线部署方式。
|
||
|
||
1. 获取项目代码
|
||
|
||
```bash
|
||
git clone [项目仓库地址]
|
||
cd CollisionAvoidance
|
||
```
|
||
|
||
2. 执行部署脚本
|
||
|
||
```bash
|
||
sudo ./scripts/deploy.sh
|
||
```
|
||
|
||
## 离线部署
|
||
|
||
如果服务器无法访问互联网,需要使用离线部署方式。
|
||
|
||
### 准备阶段(在有网络的环境中进行)
|
||
|
||
1. 在有网络的 CentOS 环境中,获取项目代码
|
||
|
||
```bash
|
||
git clone [项目仓库地址]
|
||
cd CollisionAvoidance
|
||
```
|
||
|
||
2. 执行离线包准备脚本
|
||
|
||
```bash
|
||
./scripts/prepare_offline_packages.sh
|
||
```
|
||
|
||
脚本会自动完成:
|
||
|
||
- 下载所需的系统依赖
|
||
- 下载 Python 依赖包
|
||
- 创建完整的项目归档文件
|
||
|
||
### 部署步骤
|
||
|
||
1. 将生成的归档文件传输到目标服务器
|
||
|
||
```bash
|
||
scp ../CollisionAvoidance.tar.gz root@target-server:/tmp/
|
||
```
|
||
|
||
2. 在目标服务器上解压
|
||
|
||
```bash
|
||
cd /tmp
|
||
tar xzf CollisionAvoidance.tar.gz
|
||
cd CollisionAvoidance
|
||
```
|
||
|
||
3. 删除 32 位依赖包
|
||
|
||
> 注意:由于系统是 64 位架构,我们需要删除所有 32 位(i686)的依赖包,以避免安装冲突。这些包是在准备离线包时自动下载的,但在 64 位系统上不需要。
|
||
|
||
```bash
|
||
# 删除所有 i686 架构的包
|
||
cd packages
|
||
rm -f *i686.rpm
|
||
cd ..
|
||
```
|
||
|
||
4. 执行部署脚本
|
||
|
||
```bash
|
||
sudo ./scripts/deploy.sh
|
||
```
|
||
|
||
## 部署后配置
|
||
|
||
### 服务管理
|
||
|
||
- 启动服务:`systemctl start collision-avoidance`
|
||
- 停止服务:`systemctl stop collision-avoidance`
|
||
- 重启服务:`systemctl restart collision-avoidance`
|
||
- 查看状态:`systemctl status collision-avoidance`
|
||
- 查看日志:`journalctl -u collision-avoidance -f`
|
||
|
||
### 配置文件
|
||
|
||
- 配置文件位置:`/etc/collision_avoidance/`
|
||
- WebSocket 服务端口:8010
|
||
- Mock Server 端口:8081
|
||
|
||
### 防火墙配置
|
||
|
||
如果使用 firewalld:
|
||
|
||
```bash
|
||
# 开放 WebSocket 端口
|
||
firewall-cmd --permanent --add-port=8010/tcp
|
||
# 开放 Mock Server 端口
|
||
firewall-cmd --permanent --add-port=8081/tcp
|
||
firewall-cmd --reload
|
||
```
|
||
|
||
## 常见问题
|
||
|
||
### 1. 服务启动失败
|
||
|
||
- 检查服务日志:`journalctl -u collision-avoidance -n 50`
|
||
- 确认配置文件权限正确
|
||
- 验证端口 8010 和 8081 是否被占用
|
||
|
||
### 2. Mock Server 启动失败
|
||
|
||
- 检查 Python 和依赖包是否正确安装
|
||
- 确认端口 8081 未被占用
|
||
- 检查 Mock Server 日志输出
|
||
|
||
### 3. 防火墙配置
|
||
|
||
- 如果使用其他防火墙,需要手动开放 8010 和 8081 端口
|
||
- 确认防火墙规<E5A299><E8A784><EFBFBD>是否生效:`firewall-cmd --list-all`
|
||
|
||
## 卸载
|
||
|
||
如需卸载系统:
|
||
|
||
```bash
|
||
sudo ./scripts/uninstall.sh
|
||
```
|
||
|
||
卸载脚本会:
|
||
|
||
- 停止并禁用服务
|
||
- 删除系统服务配置
|
||
- 删除程序文件
|
||
- 删除配置文件
|
||
- 关闭防火墙端口
|
||
|
||
## 技术支持
|
||
|
||
如遇到问题,请:
|
||
|
||
1. 查看服务日志
|
||
2. 检查系统日志
|
||
3. 检查 Mock Server 日志
|
||
4. 联系技术支持团队
|