归档:构建服务部署

跳转到:导航搜索
Icon-obsolete.png 本文关于开放构建服务的文档已过时!
您可以在 https://openbuildservice.org/help/manuals/obs-admin-guide/ 上找到最新的信息

OBS 服务部署

所有 OBS 服务都可以共存于一台机器上。随着负载的增加,合理的扩展解决方案是将服务分组如下:

  • “前端”运行 api 和 webui:一个或多个
  • “存储”运行 srcserver 和 mysql:每个 OBS 实例只有一个
  • “后端”运行 rep server、scheduler、dispatcher:一个或多个 - 如果它们不需要彼此交互,可以按架构拆分。当 ExportFilters 需要能够将二进制文件从一个架构推送到另一个架构时,这种情况发生。
  • “工作节点”运行工作节点:很多
  • “签名器”是签名服务器(出于安全原因隔离):一个
  • “下载”运行 http 并充当 rep server 的前端/rsync 镜像:一个或多个

frontend

前端服务为 http(s) osc api 服务和 webui 提供接口和访问控制逻辑。

需要安装的 openSUSE 包

  • obs-api
  • memcached(可选,用于提高性能)

正在运行的服务

  • rclighttpd(运行 obs api 和 webui)
  • rcobsapidelayed
  • rcobswebuidelayed

此主机通常没有用户数据进行备份。

存储

即使在高负载下,此服务也应快速响应。srcserver 和 mysql 在对 osc 和 webui 以及软件搜索服务(例如 software.opensuse.org)做出快速响应方面至关重要。此服务器包含所有关键数据,应进行良好的备份。

需要安装的 openSUSE 包

  • mysql
  • obs-server
  • obs-signd(可选)
  • obs-source_service(出于安全原因也可以移动到单独的系统)

正在运行的服务

  • rcobssrcserver
  • rcobsservice(source_service)

backend

批处理在此处计划、安排、触发和解决。构建的软件包可以直接从此主机上的构建区域提供,通过反向代理提供,或通过 rsync 导出。

此主机上的大部分数据都应该可重建。例外情况是导入的二进制项目。建议备份此主机,但并非至关重要。

需要安装的 openSUSE 包

  • obs-server
  • obs-signd(可选)
  • createrepo(可选,用于构建 rpm 包)
  • dpkg(可选,用于构建 debian 包)
  • lighttpd(可选,用于托管 repo)

正在运行的服务

  • rcobsscheduler
  • rcobsdispatcher
  • rcobsrepserver
  • rcobspublisher
  • rcobswarden(可选)
  • rcobssigner(可选)

工作节点

初始扩展几乎肯定会发生在此处。这些系统需要最少的本地存储和数据,尽管它们具有临时缓存。

可以使用/应该使用虚拟化来保护构建,因为构建作业可以获得 root 权限并可能利用安全漏洞。

需要安装的 openSUSE 包

  • obs-worker
  • Xen/KVM(可选,用于工作节点隔离)
  • qemu(可选,用于交叉构建)
  • mount-static(可选,用于交叉构建)
  • bash-static(可选,用于交叉构建)

正在运行的服务

  • rcobsworker

签名器

如果使用此服务,您应该考虑它需要的安全级别。

需要安装的 openSUSE 包

  • obs-signer

正在运行的服务

  • rcobssigner

下载

下载服务严格来说不属于 OBS,而是像任何 http 服务器一样管理。它可以是后端服务器的反向代理,也可以使用共享存储或 rsync 保持最新。

也可以将 rsync 推送到镜像主机。

需要安装的 openSUSE 包

  • lighttpd

数据分发

用户数据位于“存储”和“后端”上;“存储”至关重要,后端上的大部分信息可以重建。

在挂载点和存储分发方面

  • /srv/obs/{projects,sources,requests,db,remotecache,diffcache} 位于 srcserver 的“存储”上
  • /srv/obs/{events,log,run} 将在“存储”和“后端”上创建
  • /srv/obs/{info,build,workers,jobs,repos,repos_sync} 将在“后端”上创建

后端 /srv/obs/build/ 区域由发布者选择性地镜像到下载服务器(如何?)或可以直接访问或通过反向代理访问。

仍需描述:/srv/obs/

trees/
upload/