生产环境中,一般不会允许所有服务器都能访问公网,理想的情况是有几台服务器作为访问代理,同时作为缓存服务器。当服务器中有所需包时通过内网获取,如无则通过公网获取同时在本地保存。
常用搭建私有yum源的方法是createrepo生成本地仓库,其它服务器通过http访问仓库。这种方法的弊端是如果当前仓库中没有所需软件包会导致安装失败,不会去其它源获取数据。
本文讲述如何使用nexus 3.14进行阿里云源yum代理。阿里云源https://opsx.alibaba.com/mirror
运行nexus需满足下列条件:
1,内存不小于2G,不一定是物理内存,swap也可以。
2,JDK需要1.8以上版本。
具体做法如下:
1,下载nexus,并解压到某个目录下。我这里放在/home/nexus中。这里面有两个目录,nexus-3.14.0-04放置程序及配置文件,sonatype-work放置数据文件。
2,修改nexus端口,默认是8081,此步骤可选。
/home/nexus/nexus-3.14.0-04/etc/nexus-default.properties
3,启动nexus,命令如下。这里不推荐使用root用户运行nexus服务。另外,它支持这些参数start|stop|run|run-redirect|status|restart|force-reload进行服务管理。
/home/nexus/nexus-3.14.0-04/bin/nexus start
4,打开浏览器即可看待nexus页面,默认用户名admin,默认密码admin123
5,创建blob,用于数据存储,默认存放在default中。blob类似bucket,存放源数据及xml等文件。这里创建一个名叫yum的blob,默认存储位置在/home/nexus/sonatype-work/nexus3/blobs/yum,此步骤可选。
6,创建yum代理。
选择yum(proxy)选项
配置Name和Remote storage,这里的Remote storage是要代理的源地址,填上文提供的阿里云的centos源地址。
指定blob。
7,创建后的源需要记录URL,会用在下面写repo文件中。
8,写repo文件,如nexus.repo
上一步URL中的Name就是repository中的名字,区分大小写。
[nexus]
name=Nexus
baseurl=http://IP:8081/repository/CentOS-aliyun/$releasever/os/$basearch/
enabled=1
gpgcheck=0
9,清除缓存,即可使用新yum源。这里以安装screen为例,可看到正在加载nexus源。
10,查看blob可看到已有缓存的包。
11,browse中可看到缓存的内容。点击即可查看当前包的详细信息。
附:下载地址