当前位置: 首页 > news >正文

便捷快速部署koji服务(kojihub+web篇)

koji是fedora/centos/rhel/openanolisos/opencloudos使用的rpm包自动化构建与追踪系统(koji build system),用来集中、批量、可复现地编译RPM软件包并管理软件仓库。

如何快速高效部署搭建kojihub+web服务

共分为六个部分组成:

1、postgresql:存储用户、任务、构建记录;

2、koji-hub​:核心服务端,XML-RPC接口,连postgresql;

3、koji-web:Web UI,通过Apache/httpd展示;

4、koji-builder:编译节点,用 mock 在 chroot 里编 RPM;

5、kojira (koji-utils)​:负责生成 yum 仓库元数据;

6、/mnt/koji (NFS 或本地)​:存放 SRPM、RPM、repo 数据。

本文将讲解第二、三部分kojihub+web搭建部署。

目录

一、部署准备

1、准备基础镜像

2、准备数据库

3、准备必备文件

4、准备配置文件

二、手搓证书

1、手搓CA 根证书

2、手搓kojihub组件证书

三、制作镜像

四、创建容器

五、访问验证

1、域名加入本地hosts解析

2、浏览器访问

注:


一、部署准备
1、准备基础镜像

参考地址:《如何制作一个docker base镜像》

2、准备数据库

参考地址:《便捷快速部署koji服务(postgresql数据库篇)》

3、准备必备文件
git clone https://gitee.com/koji_docker/kojihub.git

4、准备配置文件
mkdir -p ~/.koji/conf cp hub.conf ssl.conf web.conf kojihub.conf ~/.koji/conf/

二、手搓证书

注:可购买证书不执行本步骤

1、手搓CA 根证书
bash create_ca.sh

2、手搓kojihub组件证书
bash koji_make_cert.sh koji.delcare.cn

三、制作镜像
docker build -f Dockerfile -t cr.delcare.cn/koji:1.31.1 .

四、创建容器
docker run -itd --name kojihub --hostname kojihub \ -v $HOME/koji:/mnt/koji \ -v $HOME/.koji/conf/hub.conf:/etc/koji-hub/hub.conf:ro \ -v $HOME/.koji/conf/ssl.conf:/etc/httpd/conf.d/ssl.conf:ro \ -v $HOME/.koji/conf/web.conf:/etc/kojiweb/web.conf:ro \ -v $HOME/.koji/conf/kojihub.conf:/etc/httpd/conf.d/kojihub.conf:ro \ -v $HOME/.koji/certs/koji.delcare.cn.crt:/etc/pki/koji/certs/kojihub.crt:ro \ -v $HOME/.koji/private/koji.delcare.cn.key:/etc/pki/koji/private/kojihub.key:ro \ -v $HOME/.koji/certs/koji_ca_cert.crt:/etc/pki/koji/certs/koji_ca_cert.crt:ro \ -p 80:80 -p 443:443 cr.delcare.cn/koji:1.31.1

注:手搓证书需将证书加入可信,重启生效

cp /etc/pki/koji/certs/kojihub.crt /etc/pki/koji/certs/koji_ca_cert.crt /etc/pki/ca-trust/source/anchors/ && update-ca-trust

五、访问验证
1、域名加入本地hosts解析

注:公网服务器可通过配置DNS解析,不执行本步骤

sudo echo 127.0.0.1 koji.delcare.cn >> /etc/hosts

2、浏览器访问

https://koji.delcare.cn/koji/

注:

至此,kojihub+web部分已配置完毕,其他部分将后续分别进行介绍。

http://www.jsqmd.com/news/1220357/

相关文章:

  • CMPSS硬件比较器子系统:实时控制中的峰值检测与保护利器
  • Apache Commons Collections 4.x新特性:从3.x升级的完整迁移指南 [特殊字符]
  • AI驱动的SQL优化实战:3步将慢查询性能提升87%(附GPT-4生成可验证执行计划)
  • 3步实现iOS设备自由降级:Downr1n完整使用指南
  • ES6-learning:如何快速掌握JavaScript ES6新语法
  • 生产级机器学习模型开发:从问题定义到持续演进的系统工程
  • 晋中高价回收黄金,清奢黄金回收,大盘价同步不压称! - 清奢黄金上门回收
  • 猫抓Cat-Catch深度解析:浏览器资源嗅探扩展的5大架构创新与性能优化策略
  • TMS320F28003x CLA内存架构、任务调度与CPU协同设计详解
  • 最新发布:合肥高科经济技工学校2026年招生简章 附招生计划专业及人数、完整报名方式 - cc江江
  • ALEAPP完全指南:Android日志与事件解析神器,让数据提取从未如此简单
  • Claude企业落地生死线:合规审计、数据脱敏、审计日志闭环的5大强制实施项(金融/医疗行业已强制执行)
  • 5个简单步骤实现专业级AI唇形同步:sd-wav2lip-uhq完整指南
  • 【题解】动态树 LCT 模板(没学过 Splay 人士友好)
  • 2026年7月浪琴 中国区售后服务网络更新优化 全国60+门店地址及电话汇总 - 亨得利中国服务中心
  • GRBL-Plotter终极指南:从零掌握CNC绘图与激光雕刻的完整教程
  • 深度解析iOS设备固件恢复:开源工具idevicerestore技术实现与实战指南
  • QobuzDownloaderX-MOD快速上手:3步完成无损音乐下载的完整教程
  • TMS320F2838x DMA通道优先级配置与高优先级模式实战解析
  • TMS320F2838x CLA调试与流水线优化实战指南
  • QobuzDownloaderX-MOD用户指南:自定义音乐下载路径与音质设置全攻略
  • CQRS模式:读写分离的进阶版
  • 深入node-jsonc-parser源码:解析器实现原理与设计模式
  • 实战指南:如何用数据集蒸馏技术将6万张图像压缩到10张
  • TI MCAN模块IF3自动更新机制:提升CAN总线实时性的硬件加速方案
  • Zeroshot常见问题解答:从安装错误到高级配置全攻略
  • MLOps核心原则三:实验跟踪与模型选择实战指南
  • rtsp-stream安全部署教程:JWT认证与CORS配置最佳实践
  • 玉溪人速看!6家黄金回收店实测推荐,全区县覆盖,当面打款超安心! - 清奢黄金上门回收
  • 番茄工作法进阶指南:用Tomodoro实现3倍效率提升,你真的掌握了吗?