您的位置:首页 > 运维架构 > Linux

6.使用nexus3配置yum私有仓库

2020-06-13 12:04 316 查看

精选30+云产品,助力企业轻松上云!>>>

yum相较于rpm,能够更好地解决安装软件时的依赖包问题,使用yum安装更简单更方便。搭建本地YUM源服务器,可以避免升级安装软件时占用公网带宽;有了本地YUM源服务器,可以解决无法连接Internet的其他YUM客户端的软件升级和安装。
与其他私服一样的,yum私服同样有三种类型:

  • hosted : 本地存储,即同 yum 官方仓库一样提供本地私服功能
  • proxy : 提供代理其他仓库的类型,如我们常用的163仓库
  • group : 组类型,实质作用是组合多个仓库为一个地址,相当于一个透明代理。

那么就来一个一个创建。

1,创建blob存储

为其创建一个单独的存储空间,命名为yum-hub

2,创建hosted类型的yum库

后来才发现,其实每次创建的这个hosted类型的,并没有什么用。不过照例创建一波吧。

  • Name::定义一个名称local-yum
  • Storage:Blob store,我们下拉选择前面创建好的专用blob:yum-hub。
  • Hosted:开发环境,我们运行重复发布,因此Delpoyment policy 我们选择Allow redeploy。这个很重要!

整体配置截图如下:

3,创建一个proxy类型的yum仓库

其他的均是默认。

这里就先创建一个代理163的仓库,其实还可以多创建几个,诸如阿里云的,搜狐的,等等,这个根据个人需求来定义。

整体配置截图如下:

4,创建一个group类型的yum仓库

  • Name:group-yum
  • Storage:选择专用的blob存储yum-hub。
  • group : 将左边可选的2个仓库,添加到右边的members下。

整体配置截图如下:

这些配置完成之后,就可以使用了。

5,构建缓存

新建一台环境干净的主机,此时需要保证这台主机能够上网,因为私服当中还没有进行初始化。

先简单配置一下,将yum源指向到私服中来。

cd /etc/yum.repos.d/
mkdir bak
mv * bak/

2,创建一个新的源

vim nexus.repo

添加如下内容:

其中的url就是私服当中创建的group的对外地址,后面的$releasever/os/$basearch/不要漏掉了。

[nexus]
name=Nexus Repository
baseurl=http://192.168.75.11:8081/repository/group-yum/$releasever/os/$basearch/
enabled=1
gpgcheck=0

注意这还不是完整内容,我第一次构建的时候只写了这些内容,以求私服自己能够通过刚刚配置的proxy将远程的包拉下来,最后发现这种方式,死活都是无法成功的。

因此,这里还应该将aliyun的源配置添加进来。
网址:https://developer.aliyun.com/mirror/centos
下载CentOS7系统使用的一个CentOS-Base.repo文件,打开该文件,找到base,updates,extras,centosplus这三个源配置,并做适当修改

注意:CentOS8系统的不一样

完整内容应该如下:

[nexus]
name=Nexus Repository
baseurl=http://192.168.75.11:8081/repository/group-yum/$releasever/os/$basearch/
enabled=1
gpgcheck=0
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

3,构建缓存

现在,就可以通过make cache将远程的包拉到内部私服当中了。

操作之前,就像古代变戏法一般的,依旧先去私服看一眼group-yum当中是否有包存在,这是一个固定流程哈。

可以看到空空如也,那么通过如下三步操作创建缓存。

# yum clean all
# yum makecache
# yum update -y #这个过程比较长,内容比较多,不完全复制了。

当上边的第三步执行完成之后,此时我们可以回到刚刚那个空白的页面,看看内容是否上来了。

6,验证一下效果

验证的方式其实也很简单,找一台不能上网但是可以与刚刚私服通信的主机,将其yum源指向的配置好的私服,看看安装软件什么的是否可以so easy。

或者是将其他的源都切断,然后yum源仅仅指向私服,看看安装是否顺利。

这里采用第二种方式简单试验一下。

1,将原有的移走

# cd /etc/yum.repos.d/
# mkdir bak
# mv * bak

2,创建一个新的源

cat /etc/yum.repos.d/nexus.repo
[nexus]
name=Nexus Repository
baseurl=http://192.168.75.11:8081/repository/group-yum/$releasever/os/$basearch/
enabled=1
gpgcheck=0

然后安装软件

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos nexus