# 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
# 登录 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;
创建 .env 文件:
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
# 创建部署目录
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
cd /opt/cloudpods/backend
# 执行初始化(首次部署)
./init-cloudpods.sh
# 或跳过确认直接部署
./init-cloudpods.sh --skip-confirm
# 下载 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
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
./init-cloudpods.sh
cd /opt/cloudpods/backend
# 查看所有服务进程
ps aux | grep -E 'keystone|region|glance|yunionconf|scheduledtask|apigateway'
# 查看服务端口
netstat -tlnp | grep -E '30500|30889|9292|30888|30950|3000'
# 停止所有服务
./stop-backend.sh
# 启动服务(开发模式,不重置数据)
./start-dev.sh
# 完全重置并重新初始化(会删除数据库)
./init-cloudpods.sh
# 实时查看所有日志
tail -f logs/*.log
# 查看特定服务日志
tail -f logs/keystone.log
tail -f logs/region.log
如需自定义配置,创建此文件:
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
然后执行:
./init-cloudpods.sh --config init-config.env
# Keystone
curl http://localhost:30500/v3
# APIGateway
curl http://localhost:3000/api/v1/rpc/parameters/global-settings
# Region
curl http://localhost:30889/regions
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
如果提示端口被占用,修改 init-config.env 中的端口配置。
检查:
systemctl status mysql查看对应服务的日志:
tail -f logs/keystone.log
如需将服务注册为 systemd 服务,创建 /etc/systemd/system/cloudpods-backend.service:
[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
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable cloudpods-backend
sudo systemctl start cloudpods-backend
sudo systemctl status cloudpods-backend
前端需要配置 API 地址,修改前端项目的 .env 文件:
# 前端项目根目录
cat > .env << 'EOF'
VUE_APP_API_URL=http://your-server-ip:3000
EOF
然后构建并部署前端。
部署完成后访问: http://your-server-ip:8080
默认账号: sysadmin / admin@123