基于minio s3 实现自己的yum 私服存储


参考集成玩法

细节说明

rpm 需要key,可以基于gpg 工具生成,同时我们的repo 可以做为为一个rpm包,方便打开开启使用
默认repo 的rpm格式(可以直接使用fpm制作rpm包)

 
├── etc
├── pki
└── rpm-gpg
└── RPM-GPG-KEY-psychotic
└── yum.repos.d
└── psychotic.repo
├── psychotic-release-1.0.0-1.el7.psychotic.noarch.rpm
└── usr
    └── share
        └── doc
            └── psychotic-release-1.0.0
                └── RPM-GPG-KEY-psychotic

psychotic.repo 格式

[psychotic]
name=Psychotic Ninja Enterprise Linux Repository
baseurl=http://packages.psychotic.ninja/$releasever/base/$basearch/RPMS/
enabled=0
protect=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-psychotic
gpgcheck=1
 
[psychotic-plus]
name=Psychotic Ninja Enterprise Linux Repository - Additional Components
baseurl=http://packages.psychotic.ninja/$releasever/plus/$basearch/RPMS/
enabled=0
protect=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-psychotic
gpgcheck=1
 
[psychotic-testing]
name=Psychotic Ninja Enterprise Linux Repository - Testing - Not Stable
baseurl=http://packages.psychotic.ninja/$releasever/testing/$basearch/RPMS/
enabled=0
protect=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-psychotic
gpgcheck=1
   

minio 集成

做法很简单,主要是可以基于createrepo 对于创建好的rpm包生成元数据,然后使用gpg 工具对于元数据进行签名,之后
通过s3 工具(minio 的mc 以及aws 的s3 工具都是可以的)对于数据文件拷贝到minio s3 桶中
minio s3 配置策略(如下)


文件拷贝到s3 可以使用工具mc 或者rclone

主机repo 配置

  • 参考内容
    myyum.reo
 
[haproxy-repo]
name=mydemo
baseurl=http:///yumrepo/
enabled=1
gpgcheck=0

说明

基于s3 的好处是我们不需要自己的服务器了,直接可以使用s3的能力进行存储,对于扩容以及维护都是比较方便的

参考资料

https://earthly.dev/blog/creating-and-hosting-your-own-rpm-packages-and-yum-repo/

https://docs.min.io/docs/minio-client-complete-guide.html
https://github.com/minio/mc