【nexus&yum】CentOS7.x上用nexus搭建yum仓库

一、实验背景

  在生产环境中,我们不可能所有的服务器都能连接外网更新rpm包,比较理想的环境是:有一台Linux服务器可以连接外网,剩余的服务器通过这台yum服务器更新。

传统的做法是先把包下载到内网中的yum服务器上,然后通过createrepo命令生成本地仓库,其余服务器通过HTTP/FTP访问这个链接,这种做法比较费时费事。有没有一种比较好的方式,让我们直接通过这台服务器代理连接到公网的163、阿里云yum仓库呢?

这就是本次介绍的Nexus代理,无论你的客户机是CentOS6还是CentOS7又或者是Ubuntu,不论你是想用yum还是pip又或者是npm包管理器,Nexus都能满足你的需求

你只需要将nexus放到能连外网的服务器上,通过nexus暴露服务就可以了。

 

二、实验环境

操作系统:CentOS7.5 Minimal

nexusServer: 192.168.1.107

yumClient:192.168.1.103

 

三、安装nexus,创建yum私有仓库

在nexusServer服务器

 

关闭selinux

# setenforce 0

# sed  -i  's/^SELINUX=.*/SELINUX=permissive/g'  /etc/selinux/config

 

安装docker

# yum -y install  yum-utils device-mapper-persistent-data lvm2

# yum-config-manager  --add-repo    https://download.docker.com/linux/centos/docker-ce.repo

# yum list docker-ce  --showduplicates | sort  -r

#  yum -y install docker-ce-18.06.0.ce 

# systemctl  start docker

# systemctl  status docker

# systemctl  enable  docker

# docker version

拉取镜像,运行nexus服务

在nexusServer 服务器

# docker pull sonatype/nexus3:3.16.0

# docker images

#  mkdir /opt/nexus-data

# chown -R  200 /opt/nexus-data

注:容器中nexus的默认运行用户是nexus,uid和gid为200

 

用命令行形式运行nexus容器

#  docker run -d  \

  --name nexus \

  --ulimit nofile=65536:65536 \

  -p 192.168.1.106:8081:8081 \

  -v /opt/nexus-data:/nexus-data \

  sonatype/nexus3:3.16.0

 

 

 

# docker logs  -f  nexus

 

# docker  ps  -a

# ss  -tan

浏览器访问: http:192.168.1.107:8081

默认登录用户名密码:admin/admin123

创建yum私有仓库

 

yum私服有三种类:

 

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

 

创建hosted类型的yum库

Name::定义一个名称yumDev

Storage:Blob store,我们下拉选择前面创建好的专用blob:yum。

Hosted:开发环境,我们运行重复发布,因此Delpoyment policy 我们选择Allow redeploy

 

 

 

创建一个proxy类型的yum仓库

Name: yumProxy

Proxy:Remote Storage: 远程仓库地址,写: http://mirrors.163.com/centos

Storage: yum

其他设置,使用均是默认。

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

 

创建一个group类型的yum仓库

Name:yumGroup

Storage:选择专用的blob存储yum

group : 将左边可选的2个仓库,添加到右边的members

 

可以创建多个prxoy类型的yum仓库,通过同一个group暴露给客户端使用

 

构建yum缓存

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

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

#  cd /etc/yum.repos.d

# mkdir repoBackup

# mv *.repo  repoBackup

 

# vim nexus.repo

####################################################################

[nexus]

name=Nexus Yum Repository

baseurl=http://192.168.1.107:8081/repository/yumGroup/$releasever/os/$basearch/

enabled=1

gpgcheck=0

#######################################################################

 

#  yum clean all

#  yum  makecache

现在,我们可以从页面上看缓存包了

 

 

服务端启动方式改进,将nexus注册成系统服务

编写unit文件

# vim /etc/systemd/system/nexus.service

####################################################

[Unit]

Description=Nexus

Documentation=https://www.sonatype.com

After=network-online.target firewalld.service docker.service

Requires=docker.service

[Service]

ExecStartPre=-/usr/bin/docker rm -f nexus

ExecStart=/usr/bin/docker run \

--name nexus \

--ulimit nofile=65536:65536 \

-p 192.168.1.107:8081:8081 \

-v /opt/nexus-data:/nexus-data \

sonatype/nexus3:3.16.0

ExecStop=/usr/bin/docker stop nexus

LimitNOFILE=65535

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target

#####################################################

 

 

停止和删除命令行启动的nexus服务

# docker stop nexus

# docker rm nexus

 

用systemd启动服务

# systemctl daemon-reload

#  systemctl start  nexus

#  systemctl enable nexus

#  systemctl status nexus

 

# docker logs  -f nexus

 

四、测试nexus的yum私服

 

在yumClient服务器

用一台不能上网但是可以与刚刚私服通信的主机,将其yum源指向的配置好的私服,或者是将其他的源都切断,然后yum源仅仅指向私服,看看安装是否顺利。

#  cd /etc/yum.repos.d

# mkdir repoBackup

# mv *.repo  repoBackup

# vim nexus.repo

####################################################################

[nexus]

name=Nexus Yum Repository

baseurl=http://192.168.1.107:8081/repository/yumGroup//$releasever/os/$basearch/

enabled=1

gpgcheck=0

#######################################################################

#  yum clean all

# yumrepolist 

#  yum  -y  install  httpd

 

五、参考

nexus3搭建yum源

https://blog.51cto.com/daibaiyang119/2116205

http://limingming.org/index.php/2018/12/nexus3-yum-repo

 

企业级开源仓库nexus3实战应用

http://www.eryajf.net/category/%E6%9C%AF%E4%B8%9A%E4%B8%93%E6%94%BB/%E6%9C%8D%E5%8A%A1%E7%B1%BB%E7%9B%B8%E5%85%B3/nexus

 

Nexus OSS配置yum代理

https://qgdlsj.com/nexus-oss-yum-proxy

 

Nexus Repository Manager 3.5: Yum Proxy Support Now Available

https://blog.sonatype.com/nexus-repository-manager-3.5

 

Nexus System Requirements

https://help.sonatype.com/repomanager3/system-requirements

 

国内yum源列表记录

http://limingming.org/index.php/2018/12/yum-repo-china

 

用nexus3.x 官方镜像搭建docker私有镜像仓库

https://www.jianshu.com/p/86e573f18df3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值