构建Koji编译服务器(1): Koji Server端的配置
Koji 是 Fedora 的包编译管理工具。功能十分强大,使用 Mock 作为底层,用于批量编译软件包。下面介绍使用方法。本文的实验环境为CentOS 6.4 64bit。
架构
1,我们都知道 rpmbuild 是 Linux 平台下一款编译 RPM 包的工具,而 Mock 则是在 rpmbuild 之上封装了一层(查看 Mock 的使用方法),利用 yum 来下载一个最小的系统环境,从而实验跨系统的编译工作。而 Koji 则是在 Mock 之上再次进行了封装,由 Koji Server 统一管理,将大量编译任务交给若干个安装了 Mock 的编译机来完成,这些编译机也叫 Koji Builder。
2,本例使用两台服务器(服务端+编译机)配合完成,本例将服务端称之为 Koji Server,将编译机称之为 Koji Builder。
3,本例中的 Koji Server 由 Postgresql 数据库(用来记录软件包的信息)、KojiHub(主程序)、KojiWeb(依赖于Httpd) 等组件组成。Kojira 用于管理和维护yum库,装在哪里都行。本文中的实例是将 Kojira 与 KojiHub 装在同一台服务器上。
4,本例中的 Koji Builder 运行着 Kojid 这个编译守护程序,以及底层的 Mock。
5,KojiHub 是整个体系的核心,通过 XML-RPC 运行于 Apache 的 mod_python 模块下。KojiHub 采用被动方式,仅仅接受 XML-RPC 请求,依赖编译守护模块和其他模块来进行交互。这意味着,无须在 KojiHub 里指定 Koji Builder 的IP地址信息,因为 KojiHub 是被动通信的,需要 Koji Builder 主动与之“联系”。 koji 是一个用 python 写的程序,用户通过 koji 命令,来查询信息或者执行编译工作。
6,Koji 各组件之间的通信使用SSL证书,所以本文的第一步就是为各组件创建证书。 (more…)
Read More