rgw创建rpm源仓库

介绍

对象存储以http的方式对外提供服务,那么是可以用来创建rpm源仓库。

步骤

创建本地源

在一个centos的系统上获取rpm包用来后面的测试,

1
2
3
# yum install –downloadonly redis
# ls /var/cache/yum/x86_64/7/epel/packages/
jemalloc-3.6.0-1.el7.x86_64.rpm redis-2.8.19-2.el7.x86_64.rpm

本地系统是ubuntu,使用createrepo在本地创建一个源仓库,

1
2
3
4
5
# apt-get install createrepo
# mkdir repo
# cd repo
# scp root@centos:/var/cache/yum/x86_64/7/epel/packages/* .
# createrepo -v .

同步到rgw

将该目录使用s3cmd同步到rgw

1
2
# cd ..
# s3cmd -c myconf sync repo s3://mirrors

应该保证该bucket下的所有对象,包括repodata下的文件,acl为public-read

1
# s3cmd -c myconf setacl --verbose --acl-public --recursive s3://mirrors/repo/

验证

给centos配置源:

1
2
3
4
# vim /etc/yum.repos.d/repotest.repo
[repo]
name=repo
baseurl=http://mirrors.rgw.xxx.com/repo/

验证:

1
2
3
4
5
6
7
8
9
# yum repolist
源标识 源名称 状态
repo repo 2

# yum whatprovides redis
redis-2.8.19-2.el7.x86_64 : A persistent key-value database
源 :epel
redis-2.8.19-2.el7.x86_64 : A persistent key-value database
源 :repo