|
|
@@ -0,0 +1,298 @@
|
|
|
+# Cloudpods 后端部署指南
|
|
|
+
|
|
|
+## 一、环境要求
|
|
|
+
|
|
|
+### 1. 系统要求
|
|
|
+- **操作系统**: Linux (CentOS 7/8, Ubuntu 18.04/20.04/22.04)
|
|
|
+- **CPU**: 4核及以上
|
|
|
+- **内存**: 8GB及以上
|
|
|
+- **磁盘**: 50GB及以上可用空间
|
|
|
+
|
|
|
+### 2. 软件依赖
|
|
|
+- **MySQL**: 5.7 或 8.0
|
|
|
+- **Go**: 1.21 或更高版本(如需编译)
|
|
|
+
|
|
|
+## 二、部署前准备
|
|
|
+
|
|
|
+### 1. 安装 MySQL
|
|
|
+```bash
|
|
|
+# CentOS/RHEL
|
|
|
+sudo yum install -y mysql-server
|
|
|
+sudo systemctl start mysqld
|
|
|
+sudo systemctl enable mysqld
|
|
|
+
|
|
|
+# Ubuntu/Debian
|
|
|
+sudo apt-get update
|
|
|
+sudo apt-get install -y mysql-server
|
|
|
+sudo systemctl start mysql
|
|
|
+sudo systemctl enable mysql
|
|
|
+```
|
|
|
+
|
|
|
+### 2. 创建数据库
|
|
|
+```bash
|
|
|
+# 登录 MySQL
|
|
|
+mysql -u root -p
|
|
|
+
|
|
|
+# 创建数据库
|
|
|
+CREATE DATABASE yunioncloud CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
+
|
|
|
+# 创建用户(可选,也可以使用 root)
|
|
|
+CREATE USER 'yunion'@'%' IDENTIFIED BY 'your_password';
|
|
|
+GRANT ALL PRIVILEGES ON yunioncloud.* TO 'yunion'@'%';
|
|
|
+FLUSH PRIVILEGES;
|
|
|
+EXIT;
|
|
|
+```
|
|
|
+
|
|
|
+### 3. 配置环境变量
|
|
|
+创建 `.env` 文件:
|
|
|
+```bash
|
|
|
+cd /opt/cloudpods/backend
|
|
|
+cat > .env << 'EOF'
|
|
|
+# 数据库配置
|
|
|
+DB_HOST=127.0.0.1
|
|
|
+DB_PORT=3306
|
|
|
+DB_USER=yunion
|
|
|
+DB_PASSWORD=your_password
|
|
|
+DB_NAME=yunioncloud
|
|
|
+
|
|
|
+# 管理员配置
|
|
|
+ADMIN_USER=sysadmin
|
|
|
+ADMIN_PASSWORD=admin@123
|
|
|
+ADMIN_PROJECT=system
|
|
|
+ADMIN_DOMAIN=Default
|
|
|
+REGION_NAME=region0
|
|
|
+EOF
|
|
|
+```
|
|
|
+
|
|
|
+## 三、部署方式
|
|
|
+
|
|
|
+### 方式一:使用预编译二进制(推荐)
|
|
|
+
|
|
|
+#### 1. 下载二进制包
|
|
|
+```bash
|
|
|
+# 创建部署目录
|
|
|
+mkdir -p /opt/cloudpods
|
|
|
+cd /opt/cloudpods
|
|
|
+
|
|
|
+# 下载二进制包(从 CI/CD 或 Release 页面)
|
|
|
+wget https://your-ci-server/cloudpods-backend-linux-amd64.tar.gz
|
|
|
+tar -xzf cloudpods-backend-linux-amd64.tar.gz
|
|
|
+```
|
|
|
+
|
|
|
+#### 2. 执行部署脚本
|
|
|
+```bash
|
|
|
+cd /opt/cloudpods/backend
|
|
|
+
|
|
|
+# 执行初始化(首次部署)
|
|
|
+./init-cloudpods.sh
|
|
|
+
|
|
|
+# 或跳过确认直接部署
|
|
|
+./init-cloudpods.sh --skip-confirm
|
|
|
+```
|
|
|
+
|
|
|
+### 方式二:源码编译部署
|
|
|
+
|
|
|
+#### 1. 安装 Go
|
|
|
+```bash
|
|
|
+# 下载 Go
|
|
|
+wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz
|
|
|
+sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
|
|
|
+
|
|
|
+# 配置环境变量
|
|
|
+echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
|
|
|
+source ~/.bashrc
|
|
|
+```
|
|
|
+
|
|
|
+#### 2. 克隆代码并编译
|
|
|
+```bash
|
|
|
+cd /opt
|
|
|
+git clone https://github.com/your-org/cloudpods.git
|
|
|
+cd cloudpods/backend
|
|
|
+
|
|
|
+# 编译所有服务
|
|
|
+make all
|
|
|
+
|
|
|
+# 或只编译特定服务
|
|
|
+make cmd/keystone cmd/region cmd/glance cmd/yunionconf cmd/scheduledtask cmd/apigateway
|
|
|
+```
|
|
|
+
|
|
|
+#### 3. 执行部署
|
|
|
+```bash
|
|
|
+./init-cloudpods.sh
|
|
|
+```
|
|
|
+
|
|
|
+## 四、服务管理
|
|
|
+
|
|
|
+### 查看服务状态
|
|
|
+```bash
|
|
|
+cd /opt/cloudpods/backend
|
|
|
+
|
|
|
+# 查看所有服务进程
|
|
|
+ps aux | grep -E 'keystone|region|glance|yunionconf|scheduledtask|apigateway'
|
|
|
+
|
|
|
+# 查看服务端口
|
|
|
+netstat -tlnp | grep -E '30500|30889|9292|30888|30950|3000'
|
|
|
+```
|
|
|
+
|
|
|
+### 启动/停止服务
|
|
|
+```bash
|
|
|
+# 停止所有服务
|
|
|
+./stop-backend.sh
|
|
|
+
|
|
|
+# 启动服务(开发模式,不重置数据)
|
|
|
+./start-dev.sh
|
|
|
+
|
|
|
+# 完全重置并重新初始化(会删除数据库)
|
|
|
+./init-cloudpods.sh
|
|
|
+```
|
|
|
+
|
|
|
+### 查看日志
|
|
|
+```bash
|
|
|
+# 实时查看所有日志
|
|
|
+tail -f logs/*.log
|
|
|
+
|
|
|
+# 查看特定服务日志
|
|
|
+tail -f logs/keystone.log
|
|
|
+tail -f logs/region.log
|
|
|
+```
|
|
|
+
|
|
|
+## 五、配置文件说明
|
|
|
+
|
|
|
+### init-config.env(可选)
|
|
|
+如需自定义配置,创建此文件:
|
|
|
+```bash
|
|
|
+cat > init-config.env << 'EOF'
|
|
|
+# 数据库配置
|
|
|
+DB_HOST=192.168.1.100
|
|
|
+DB_PORT=3306
|
|
|
+DB_USER=cloudpods
|
|
|
+DB_PASSWORD=SecurePass123!
|
|
|
+DB_NAME=yunioncloud
|
|
|
+
|
|
|
+# 服务端口(如有端口冲突可修改)
|
|
|
+KEYSTONE_PORT=30500
|
|
|
+REGION_PORT=30889
|
|
|
+GLANCE_PORT=9292
|
|
|
+YUNIONCONF_PORT=30888
|
|
|
+SCHEDULEDTASK_PORT=30950
|
|
|
+APIGATEWAY_PORT=3000
|
|
|
+
|
|
|
+# 管理员账号
|
|
|
+ADMIN_USER=admin
|
|
|
+ADMIN_PASSWORD=YourSecurePassword
|
|
|
+ADMIN_PROJECT=system
|
|
|
+ADMIN_DOMAIN=Default
|
|
|
+REGION_NAME=region0
|
|
|
+EOF
|
|
|
+```
|
|
|
+
|
|
|
+然后执行:
|
|
|
+```bash
|
|
|
+./init-cloudpods.sh --config init-config.env
|
|
|
+```
|
|
|
+
|
|
|
+## 六、健康检查
|
|
|
+
|
|
|
+### 1. 检查服务是否正常运行
|
|
|
+```bash
|
|
|
+# Keystone
|
|
|
+curl http://localhost:30500/v3
|
|
|
+
|
|
|
+# APIGateway
|
|
|
+curl http://localhost:3000/api/v1/rpc/parameters/global-settings
|
|
|
+
|
|
|
+# Region
|
|
|
+curl http://localhost:30889/regions
|
|
|
+```
|
|
|
+
|
|
|
+### 2. 使用 climc 检查
|
|
|
+```bash
|
|
|
+export OS_AUTH_URL=http://127.0.0.1:30500/v3
|
|
|
+export OS_USERNAME=sysadmin
|
|
|
+export OS_PASSWORD=admin@123
|
|
|
+export OS_DOMAIN_NAME=Default
|
|
|
+export OS_PROJECT_NAME=system
|
|
|
+
|
|
|
+# 查看 region 列表
|
|
|
+./_output/bin/climc region-list
|
|
|
+
|
|
|
+# 查看服务列表
|
|
|
+./_output/bin/climc service-list
|
|
|
+
|
|
|
+# 查看 endpoint 列表
|
|
|
+./_output/bin/climc endpoint-list
|
|
|
+```
|
|
|
+
|
|
|
+## 七、常见问题
|
|
|
+
|
|
|
+### 1. 端口冲突
|
|
|
+如果提示端口被占用,修改 `init-config.env` 中的端口配置。
|
|
|
+
|
|
|
+### 2. 数据库连接失败
|
|
|
+检查:
|
|
|
+- MySQL 服务是否运行:`systemctl status mysql`
|
|
|
+- 数据库用户权限是否正确
|
|
|
+- 防火墙是否放行 MySQL 端口
|
|
|
+
|
|
|
+### 3. 服务启动失败
|
|
|
+查看对应服务的日志:
|
|
|
+```bash
|
|
|
+tail -f logs/keystone.log
|
|
|
+```
|
|
|
+
|
|
|
+## 八、系统服务化(可选)
|
|
|
+
|
|
|
+如需将服务注册为 systemd 服务,创建 `/etc/systemd/system/cloudpods-backend.service`:
|
|
|
+
|
|
|
+```ini
|
|
|
+[Unit]
|
|
|
+Description=Cloudpods Backend Services
|
|
|
+After=network.target mysql.service
|
|
|
+
|
|
|
+[Service]
|
|
|
+Type=forking
|
|
|
+User=cloudpods
|
|
|
+Group=cloudpods
|
|
|
+WorkingDirectory=/opt/cloudpods/backend
|
|
|
+ExecStart=/opt/cloudpods/backend/start-dev.sh
|
|
|
+ExecStop=/opt/cloudpods/backend/stop-backend.sh
|
|
|
+Restart=on-failure
|
|
|
+RestartSec=5
|
|
|
+
|
|
|
+[Install]
|
|
|
+WantedBy=multi-user.target
|
|
|
+```
|
|
|
+
|
|
|
+启用服务:
|
|
|
+```bash
|
|
|
+sudo systemctl daemon-reload
|
|
|
+sudo systemctl enable cloudpods-backend
|
|
|
+sudo systemctl start cloudpods-backend
|
|
|
+sudo systemctl status cloudpods-backend
|
|
|
+```
|
|
|
+
|
|
|
+## 九、前端配置
|
|
|
+
|
|
|
+前端需要配置 API 地址,修改前端项目的 `.env` 文件:
|
|
|
+```bash
|
|
|
+# 前端项目根目录
|
|
|
+cat > .env << 'EOF'
|
|
|
+VUE_APP_API_URL=http://your-server-ip:3000
|
|
|
+EOF
|
|
|
+```
|
|
|
+
|
|
|
+然后构建并部署前端。
|
|
|
+
|
|
|
+## 十、安全建议
|
|
|
+
|
|
|
+1. **修改默认密码**: 部署后立即修改 sysadmin 密码
|
|
|
+2. **使用 HTTPS**: 生产环境配置 SSL/TLS
|
|
|
+3. **防火墙配置**: 只开放必要的端口(3000, 8080)
|
|
|
+4. **数据库安全**: 使用强密码,限制数据库访问 IP
|
|
|
+5. **定期备份**: 备份数据库和配置文件
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+**部署完成后访问**: http://your-server-ip:8080
|
|
|
+
|
|
|
+**默认账号**: sysadmin / admin@123
|