我们的数据中心Linux服务器也不少,主要涵盖Rocky Linux系列(以及RHEL系老的CentOS 7),以及最近很多厂商喜欢用的Open Euler(22、24都有),少量的Ubuntu。
我想要实现的是:
内部做个只给自己用的镜像仓库,所以我不需要大而全的功能,只要能保证我用的这些系统能支持就好了。
安装不要太费事,比如Dokcer就行。
代理“不能上网的服务器”的更新和补丁安装工作,最好是有那种缓存或者即用即下的功能(默认不下载,但是当你第一次下载了就缓存到本地。
后续如果根据实际需求,可以扩展到其他平台,比如docker、maven...甚至模型库
有一个简单的web管理界面,不想在配置和部署上花太多的时间。
其实最后一点最近也不是特别强的需求了,有API接口和命令行,在Vibe Coding的加持下集成到我们自己的AIOps平台并不是太复杂的事情。有一说一,AI确实颠覆了很多产品选型的方式,要是以前我肯定优先看中Web界面,其次是脚本,API接口对我毫无意义(因为真的是不会....),但是现在是优先看中API接口。
评估了几款软件,最终其实结论...没有最好的,只有最适合自己的。
sonatype nexus-community-edition
功能上,这货可能是最强大的,甚至还有Windows版本,但是他最大的缺点是...强大的功能都在商业版。虽然提供社区版,但是有限制:
是的,访问量限制,并且非常低,比如每天10万个请求,这个完全是给自己挖坑,还是算了不折腾了。
各类镜像站开源出来的产品
比如清华的tunasync,看起来略微简陋了一点,并且他的核心是做一个公开镜像站,而我其实只要搞一个内部的小系统就行了。所以也不需要,并且此类软件的问题是需要大量的折腾...我不想折腾...
RepoManager
这货是DS推荐的,然后看了下Github,更新的还蛮快的,也支持Docker安装。但是我装了半天愣是没用成功,逻辑上有点混乱,可能和我的需求不太匹配吧。
Uyuni
这是Suse开源的一个全面的基础设施管理平台,也就是说除了我需要的镜像(软件仓库)管理,他更多的是可以实现配置文件的管理、自动化系统部署等。所以有点重了,且其最大的缺点是官方推荐的操作系统是OpenSUSE,实在不想再去折腾一个新环境了,
但是值得后续继续研究。
Katello
这个是值得说一下的,Katello是基于Pulp和Foreman,但是和Uyuni一样的问题,太重了,他的作用是:高校或企业级大批量 Linux 服务器运维、补丁管理(Content Views)以及生命周期管理(Dev/Test/Prod 阶段分发)
所以我们决定用Pulp:
Pulp 3
最后准备继续推进这个软件。Pulp3 是第一次听说,它的定位是Pulp is an open source project that makes it easy for developers to fetch, upload, organize and distribute Software Packages on-prem or in the cloud.,也就是`Pulp 是一个开源项目,帮助开发者便捷地在本地或云端环境中完成软件包的拉取、上传、整理与分发。
它的中文的介绍非常少!安装上也是一坨x,按照官方文档安装第一步就出错,但是好在基本适合自己的需求。虽然官方的ui也是一坨x,比如不支持我最常见的RPM包,但是好在支持CLI和API,所以接入到我们的AIOps平台似乎也不是什么大问题。
详细的说明,留在下一篇来讲。
最后
有趣的是,AI都很倔强。比如同样的提示词,DS一直在推荐RepoManager,ChatGPT一直在推荐Pulp,而Gemini则是摇摆不定,最重是建议我用Katello