服务器购买
使用 OpenStack 搭建 CapRover
为什么选择 OpenStack?
OpenStack 是对专有 IaaS(Infrastructure-as-a-Service)云标准最流行的替代方案。 无论是 AWS、Azure 这类大型云厂商,还是 Hetzner 这类较小的厂商,在资源部署方面都有各自不同的 API、配置方式和命名习惯。 OpenStack 让你可以在任何实现了 OpenStack 标准的云上采用相同的方式进行部署(你甚至可以自己搭一套 OpenStack),从而摆脱厂商绑定(vendor lock-in)。
配置 OpenStack 云服务商
不少云服务商都支持 OpenStack,包括 Infomaniak、VEXXHOST、OVHcloud、SharkTech 等。
在我见过的这些服务商里,Infomaniak 的 文档 最完善。
你需要按照服务商的说明获取 clouds.yaml 文件,用于将 OpenStack CLI 连接到你的云项目。
下面是 Infomaniak 的步骤简要摘要。 更详细的说明(含截图)请参考他们的 文档。 其他服务商的步骤应该也类似。
- 在公有云控制台中创建一个新项目,例如命名为
caprover-prod。 - 按提示为 OpenStack 用户生成并设置一个密码。
- 进入项目的 “Manage users”,在唯一用户(以 PCU-... 开头)旁的下拉菜单中下载 clouds.yaml 文件。
- 将
clouds.yaml移动到 OpenStack 客户端能够找到的位置,例如你家目录下的.config/openstack/clouds.yaml。 如果你之前已经配置过该文件,请把新的配置复制并追加到现有文件中。 - 打开
clouds.yaml,把云名称从PCP-...改成更易读的名字,例如infomaniak-prod。这样当你新增更多环境,甚至接入其他 OpenStack 服务商时,都能持续往同一个文件里追加配置。 - 同时把第 2 步生成的密码填入该文件中。
安装 OpenStack CLI 并验证连接
- 安装 OpenStack 命令行客户端。
OpenStack 官方说明
通常会让你用
pip安装,但为了避免污染全局 Python 包环境,建议改用 pipx:pip install pipx pipx install python-openstackclient pipx inject python-openstackclient python-heatclient - 使用下面的命令验证连接:
(注意:在这条以及后续命令中,请将openstack --os-cloud mycloud project listmycloud替换为你在 clouds.yaml 中配置的实际名称,例如vexxhost-dev或infomaniak-prod。) 该命令应会显示你的默认项目名称。
部署 OpenStack Heat 模板文件
- 你需要生成一个 key,以便在需要时可以 SSH 登录到 CapRover 服务器。
你可以创建
~/.ssh/openstack目录,或把 key 存到你喜欢的任何位置。openstack --os-cloud mycloud keypair create caprover > ~/.ssh/openstack/mycloud.priv chmod 600 ~/.ssh/openstack/mycloud.priv - 许多 OpenStack 服务商会提供默认的 VM 镜像集。
你可以用下面命令查看可用镜像:
建议选择最新的 Ubuntu LTS 版本。 你也可以按 这里 的说明上传自定义镜像。openstack --os-cloud mycloud image list - 使用下面命令查看可用 flavor:
openstack --os-cloud mycloud flavor list - 使用下面命令查看可用网络:
openstack --os-cloud mycloud network list - 最后,把这些信息组合起来部署 CapRover。请务必把占位符替换成你自己的实际值。
例如,下面的命令在 Infomaniak 上可用:openstack --os-cloud mycloud stack create -t https://raw.githubusercontent.com/caprover/caprover/master/dev-scripts/openstack/single-instance.yml --parameter image_id=<Ubuntu image ID> --parameter instance_type=<flavor> --parameter network=<network> caproveropenstack --os-cloud infomaniak-dev stack create -t https://raw.githubusercontent.com/caprover/caprover/master/se
tup/openstack/single-instance.yml --parameter image_id="Ubuntu 22.04 LTS Jammy Jellyfish" --parameter instance_type=a1-ram2-disk20-perf1 --parameter network=ext-net1 caprover
## 验证部署
1. 登录 OpenStack 控制台的 Web UI。
2. 打开 Instances,你应该能看到实例 `caprover-caprover_manager-...`,复制它的 IP 地址。
3. 在浏览器中访问 `<IP address>:3000`,你应该能看到 CapRover 仪表盘。
接下来你就可以按 [快速开始](/docs/get-started) 中的说明完成 CapRover 的后续配置。
4. 你也可以用命令 `ssh -i ~/.ssh/openstack/mycloud-prod.priv -o StrictHostKeyChecking=accept-new ubuntu@<CapRover manager IP>` SSH 登录到实例。
登录后,可用 `sudo less /var/log/cloud-init-output.log` 查看 Heat 模板的安装过程输出日志。