搭建yum仓库的用途与意义:
搭建yum仓库可以管理自动打包生成的大量的rpm文件,提供版本追溯功能;也可以防止人工误操作重复点击构建,导致在代码没有更新的情况下,服务仍然被重新部署与重启(没有更新的情况下,打出来的包版本号一样,客户端执行yum update时不会有实际操作)。
1)安装createrepo
在线安装命令:
yum -y install createrepo
2)配置yum私库
创建yum仓库目录:
mkdir -p /data/yum-repo/qa/base/x86_64
初始化yum私库:
createrepo -p -d -o /data/yum-repo/qa/base/x86_64 /data/yum-repo/qa/base/x86_64
注意1:路径一定要指定到存放rpm包的存级,执行完命令后会生成【repodata】索引目录
注意2:上面命令中第1个目录表示rpm包路径,第2个表示索引文件路径
3)发布yum私库
通过tomcat发布
经过前面两步后,创建了一个空的yum仓库,接下来需要将仓库发布出去,下面采用tomcat通过http形式发布(也可以采用ftp形式)。
在tomcat中添加项目,修改tomcat配置文件:server.xml,在Host节点中添加如下项:
重启tomcat
通过nginx发布
server {
listen 5022;
server_name 10.10.1.1;
charset UTF-8;
access_log logs/repo.xxx.com.access.log main;
error_log logs/repo.xxx.com.error.log warn;
location / {
root /data2/yum-repo-xxx/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
4)更新yum私库
前面三步后发布了一个空的yum仓库,当有新的rpm包时,只需要将其存放到【/data/yum-repo/qa/base/x86_64】目录,执行下面的命令,更新yum仓库索引即可。
/usr/bin/createrepo --update /data/yum-repo/qa/base/x86_64
注意1:有更新时必须更新索引,不更新索引,外部调用时无法找到新的文件
注意2:自动化发布时,可能会有多个项目同时打包,然后同时更新yum仓库,如果同时更新,可能会导致更新失败。
5)引用yum私库
在需要访问此yum仓库的服务器上添加yum源,将如下配置保存为private_SQBJ.repo,放到【/etc/yum.repos.d】目录下。
【配置文件:/etc/yum.repos.d/private_SQBJ.repo】
[sqbj_base]
name=Sqbj Production Env - Base
baseurl=http://myaliyun/yum-repo/qa/base/x86_64
enabled=1
gpgcheck=0
metadata_expire=10
注意:yum配置文件名称一定要以【.repo】后续结尾