NEXUS3作为YUM私服的使用

NEXUS3作为YUM私服的使用

Yum(全称为 Yellow dog Updater, Modified)是一个软件包管理器。Yum基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

在开始之前,我先说说自己之前是怎么在不能上网的服务器上安装软件的:
1)本地新安装一台和目标服务器系统一样的虚拟机,在/etc/yum.conf中将“keepcache=0”改成keepcache=1(为了保存安装的rpm包)
2)在本地虚拟机上用yum安装需要的软件
3)把本地虚拟机/var/cache/下的rpm包都拷贝到目标服务器上的一个目录下,并用createrepo进行创建yum源仓库
4)配置目标服务器上的repo源地址
这个过程光看看就非常繁琐,而且yum源中的rpm包是固定死的,不能更新。在了解到了nexus这个大神器之后,我觉得之前的自己真是蠢的有点可爱,哈哈!

用nexus来作为yum私服的好处:
1.节省公网带宽,这个是私服的共有特征。
2.由于权限、配额等原因,公司中有些服务器无法上网,那这些不能上网的服务器怎么安装软件包啊?nexus可以完美的解决这个问题。

一、创建BLOB STORES

和之前maven、npm一样,这里新建一个这里新建一个blob store专门作为yum的存储。

1)Type
选择"File"。

2)Name
就叫yum-blob吧。

3)Enable Soft Quota
限制目录的大小。我这边就不限制了。如果要限制的话,就勾选上,并填上限制的条件和限制的值就OK了。

4)Path
在填入Name之后,path会自动生成。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xCJ9f3Db-1622100148994)(https://www.freesion.com/images/254/233deca35607208cdc058992fea692be.png)]

二、创建一个HOSTED类型的仓库

用户可以把一些自己的构件手动上传至宿主仓库(Hosted Repository)中。

点击"Repository"–>“Repositories”–>“Create repository”,选择yum(hosted)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iwAJ6QJO-1622100148996)(https://www.freesion.com/images/597/71e2681a6bc357e901bfc896f32ea055.png)]

1)Name
就叫yum-hosted-my吧。

2)Online
勾选,可以设置这个仓库是在线还是离线。

3)Yum
Repodata Depth:指定创建repodata文件夹的存储库深度,这里选择"2"。
Deploy Policy:布局策略
Strict:严格
Permissive:宽松
这里选择默认的Strict。

4)Storang
Blob store:选择此仓库使用的Blob存储,这里选择之前创建的yum-blob。
Strict Content Type Validation:验证上传内容格式,这里就用默认的勾选。

5)Hosted
Deployment Policy:部署策略,有三个选项,分别是:
Allow Redeploy:允许重新部署
Disable Redeploy:禁止重新部署
Read-Only:只读

我这里使用默认的"Disable Redeploy",如果是开发环境,可以选择"Allow Redeploy"。

6)Cleanup
Cleanup Policies:清除策略,这个是新增的功能,这里先不进行设置。

配置完成后如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MEfiZK27-1622100148998)(https://www.freesion.com/images/682/fd35b0a222b92ac9a38aac405236e252.png)]

三、创建一个PROXY类型的仓库

代理仓库(Proxy Repository)是远程仓库的代理,当用户向这个代理仓库请求一个依赖包时,这个代理仓库会先在本地查找,如果存在,会直接提供给用户进行下载;如果在代理仓库本地查找不到,就会从配置的远程中央仓库中进行下载,下载到私服上之后再提供给用户下载。所以一般我们把私服架设在内网之中,这样可以节省外网带宽,并且大大提高了用户下载依赖的速度。

点击"Repository"–>“Repositories”–>“Create repository”,选择yum(proxy)。

1)Name
因为我要代理阿里云的yum仓库,所以就叫"yum-proxy-aliyun"。

2)Online
勾选,设置成在线。

3)Proxy
Remote storage:设置远程中央仓库的地址,我这里设置成阿里云的yum仓库地址—http://mirrors.aliyun.com/centos/

其他的用默认值即可。

4)Storage
Blob store:选择yum-blob
Strict Content Type Validation:验证上传内容格式,这里就用默认的勾选。

5)Routing,Negative Cache,Cleanup,HTTP
都使用默认配置。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iqDLzMQ7-1622100149001)(https://www.freesion.com/images/17/8249b2486c4ee9d53a1254ef3165a4d1.png)]

四、创建一个GROUP类型的仓库

仓库组(Repository Group)的目的是将多个仓库(代理仓库和宿主仓库)聚合,对用户暴露统一的地址。当用户需要获取某一个依赖包时,请求的是仓库组的地址,系统将会根据仓库组配置的仓库顺序依次查找。

点击"Repository"–>“Repositories”–>“Create repository”,选择yum(gruop)。

1)Name
yum-group-my

2)Online
勾选,设置成在线

3)Storage
Blob store:选择yum-blob
Strict Content Type Validation:使用默认的勾选

4)Group
将左侧的Available中的仓库列表添加到右侧的Members中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lv8fClHf-1622100149003)(https://www.freesion.com/images/349/56d6f03d79acd629a254f3c5148d3b45.png)]

原网址:https://www.freesion.com/article/1005670299/

以上是我在网上搜索创建yum私服时找到的一个十分完整的创建过程,博主已经写得十分详细,但是在原文中进行验证测试时,原文作者系统为Centos7,而我使用的是Centos8,因此出现了一些波折,故在此进行记录,供大家参考。

五、验证测试

测试很简单,找一台不能上网的服务器或者把服务器中的其他yum源配置删除。为了方便,我这里直接把服务器中的其他yum源配置文件删除。

1、客户端配置

先备份原始repo文件

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
Centos-7.repo  CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo
[root@localhost yum.repos.d]# mkdir repo_bak
[root@localhost yum.repos.d]# mv *.repo repo_bak/
12345

再创建nexus.repo,注意,就是从这里开始,这个**baseurl=**后面写的每个人都不同

[root@localhost yum.repos.d]# vim nexus.repo
[nexusrepo]
name=Nexus Repository
# 这种路径为centos7及7以前的写法
# baseurl=http://192.168.0.125:9081/repository/yum-group-my/$releasever/os/$basearch/
# 在centos8时 获取路径已经变为了下面这一行
baseurl=http://192.168.66.126:8081/repository/yum-group-test/$releasever/BaseOS/$basearch/os/
# 同时注意,baseurl=后面的地址是你自己的本地nexus的访问地址,每个人都不同!
enabled=1
gpgcheck=0

2、更新客户端的YUM源

yum celan allyum makecache命令来更新客户端yum源

[root@localhost yum.repos.d]# yum clean all
6 文件已删除
[root@localhost yum.repos.d]# yum makecache
Nexus Repository                                                                                                                               356 kB/s | 2.3 MB     00:06    
元数据缓存已建立。

到这里,原文作者就开始验证了,但是我并不可以,当我在进行yum命令安装时,提示我并不能够找到命令

[root@localhost yum.repos.d]# yum install vim -y
上次元数据过期检查:0:00:18 前,执行于 2021年05月13日 星期四 15时37分56秒。
未找到匹配的参数: vim
错误:没有任何匹配: vim

它会提示我,找不到相匹配的vim命令,但是我的nexus仓库却已经下载了相关文件,只是并不能下载相关的yum源文件

经过各种各样的实验以及网上搜索,我感觉这应该是和Centos8的yum源中的repo文件是有关系的,因此我去到官网下载了Centos8.repo文件,将下图中的路径全部换成了nexus的proxy的路径

修改完以后如下图:
在这里插入图片描述
在此附上nexus.repo的所有内容

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

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://192.168.66.126:8081/repository/yum-group-test/$releasever/BaseOS/$basearch/os/
        http://192.168.66.126:8081/repository/yum-group-test/$releasever/BaseOS/$basearch/os/
        http://192.168.66.126:8081/repository/yum-group-test/$releasever/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=http://192.168.66.126:8081/repository/yum-group-test/RPM-GPG-KEY-CentOS-Official

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://192.168.66.126:8081/repository/yum-group-test/$releasever/extras/$basearch/os/
        http://192.168.66.126:8081/repository/yum-group-test/$releasever/extras/$basearch/os/
        http://192.168.66.126:8081/repository/yum-group-test/$releasever/extras/$basearch/os/
gpgcheck=1
gpgkey=http://192.168.66.126:8081/repository/yum-group-test//RPM-GPG-KEY-CentOS-Official
            
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://192.168.66.126:8081/repository/yum-group-test//$releasever/centosplus/$basearch/os/
        http://192.168.66.126:8081/repository/yum-group-test/$releasever/centosplus/$basearch/os/
        http://192.168.66.126:8081/repository/yum-group-test/$releasever/centosplus/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=http://192.168.66.126:8081/repository/yum-group-test//RPM-GPG-KEY-CentOS-Official
    
[PowerTools]
name=CentOS-$releasever - PowerTools - mirrors.aliyun.com
failovermethod=priority  
baseurl=http://192.168.66.126:8081/repository/yum-group-test//$releasever/PowerTools/$basearch/os/
        http://192.168.66.126:8081/repository/yum-group-test/$releasever/PowerTools/$basearch/os/
        http://192.168.66.126:8081/repository/yum-group-test/$releasever/PowerTools/$basearch/os/
gpgcheck=1

特意说一下releaseverbasearch这两个问题,有时我们在将yum重新安装时没有相关的识别依赖包,在进行yum makecache时可能会识别不出releaseverbasearch这两种写法,进而导致刷新缓存失败,可以将releasever直接替换为8basearch直接替换为x86_64来进行实验。具体原因可以参考这里

3、验证从私服下载

在这里插入图片描述

安装vim

[root@localhost yum.repos.d]# yum install vim -y
Nexus Repository                                                                                                                               216 kB/s | 1.8 kB     00:00    
CentOS-8 - Base - mirrors.aliyun.com                                                                                                            34 MB/s | 2.3 MB     00:00    
CentOS-8 - Extras - mirrors.aliyun.com                                                                                                          11 kB/s | 9.6 kB     00:00    
CentOS-8 - AppStream - mirrors.aliyun.com                                                                                                      413 kB/s | 6.2 MB     00:15    
依赖关系解决。
===============================================================================================================================================================================
 软件包                                      架构                                版本                                             仓库                                    大小
===============================================================================================================================================================================
安装:
 vim-enhanced                                x86_64                              2:8.0.1763-15.el8                                AppStream                              1.4 M
安装依赖关系:
 gpm-libs                                    x86_64                              1.20.7-15.el8                                    AppStream                               39 k
 vim-common                                  x86_64                              2:8.0.1763-15.el8                                AppStream                              6.3 M
 vim-filesystem                              noarch                              2:8.0.1763-15.el8                                AppStream                               48 k

事务概要
===============================================================================================================================================================================
安装  4 软件包

总下载:7.8 M
安装大小:30 M
下载软件包:
(1/4): gpm-libs-1.20.7-15.el8.x86_64.rpm                                                                                                       159 kB/s |  39 kB     00:00    
(2/4): vim-filesystem-8.0.1763-15.el8.noarch.rpm                                                                                               382 kB/s |  48 kB     00:00    
(3/4): vim-enhanced-8.0.1763-15.el8.x86_64.rpm                                                                                                 1.2 MB/s | 1.4 MB     00:01    
(4/4): vim-common-8.0.1763-15.el8.x86_64.rpm                                                                                                   1.0 MB/s | 6.3 MB     00:06    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                           1.2 MB/s | 7.8 MB     00:06     
警告:/var/cache/dnf/AppStream-41dcfd3f812e4932/packages/gpm-libs-1.20.7-15.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
CentOS-8 - AppStream - mirrors.aliyun.com                                                                                                       13 kB/s | 1.6 kB     00:00    
导入 GPG 公钥 0x8483C65D:
 Userid: "CentOS (CentOS Official Signing Key) <security@centos.org>"
 指纹: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 来自: http://192.168.66.126:8081/repository/yum-group-test//RPM-GPG-KEY-CentOS-Official
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                                                                1/1 
  安装    : vim-filesystem-2:8.0.1763-15.el8.noarch                                                                                                                        1/4 
  安装    : vim-common-2:8.0.1763-15.el8.x86_64                                                                                                                            2/4 
  安装    : gpm-libs-1.20.7-15.el8.x86_64                                                                                                                                  3/4 
  运行脚本: gpm-libs-1.20.7-15.el8.x86_64                                                                                                                                  3/4 
  安装    : vim-enhanced-2:8.0.1763-15.el8.x86_64                                                                                                                          4/4 
  运行脚本: vim-enhanced-2:8.0.1763-15.el8.x86_64                                                                                                                          4/4 
  运行脚本: vim-common-2:8.0.1763-15.el8.x86_64                                                                                                                            4/4 
  验证    : gpm-libs-1.20.7-15.el8.x86_64                                                                                                                                  1/4 
  验证    : vim-common-2:8.0.1763-15.el8.x86_64                                                                                                                            2/4 
  验证    : vim-enhanced-2:8.0.1763-15.el8.x86_64                                                                                                                          3/4 
  验证    : vim-filesystem-2:8.0.1763-15.el8.noarch                                                                                                                        4/4 
已安装:
  gpm-libs-1.20.7-15.el8.x86_64        vim-common-2:8.0.1763-15.el8.x86_64        vim-enhanced-2:8.0.1763-15.el8.x86_64        vim-filesystem-2:8.0.1763-15.el8.noarch       

完毕!

然后再次查看一下仓库。
在这里插入图片描述

会发现Appstream和BaseOS还有estras文件夹都已经被下载了,而相关的依赖文件在Appstream下的Packages下进行存储,可以看出Centos8的目录存储结构相对比于Centos7是有很大变化的,至于剩下的两个文件夹我还没有时间进行仔细研究,等下次有时间再研究下这些文件夹都有何作用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值