使用Nexus做内网仓库(yum)

因某些网络安全要求某些服务器会关禁止上外网,这就导致无法使用阿里云等公有云镜像仓库,导致我们安装包、更新包带来不便,当然你也可以直接挂载iso镜像到本地作为yum源,但这种操作需要每个机器都挂载,并且epel源也没有,当然也许会说,我可以挂载在一台机器上,然后用nginx作为代理,其他机器都使用这个nginx 提供的http的yum源,这样当然也是可以,但不在本文的讨论范围之内。

本文讨论的网络架构是这样的:
有部分机器(前置机)在DMZ区,这些机器可以上白名单里的外网资源(需要申请开通),还有大量机器是在军事区是不能上外网的,并且只能访问DMZ区服务器的指定端口,比如80。网络拓扑如下:
请添加图片描述

配置

1 配置nexus

1.1 创建仓库

使用管理员登录nexus,点击配置按钮
请添加图片描述

选择 yum-proxy 类型

输入仓库的名字和远程代理的地址,这里使用阿里云的 http://mirrors.aliyun.com/
请添加图片描述

选择一个存储,我这里是为了演示选择了默认的,生产环境建议建立一个独立的存储。
请添加图片描述

其他的默认就行,然后点击创建仓库即可。
如果你觉得配置一个阿里云还不够,还可以配置多个这样的仓库,然后再将这些仓库加入到一个yum-group组。
如下图:
请添加图片描述

然后将其他仓库加入到这个group。

1.2 配置权限

我这里的仓库是开启了认证的,匿名用户访问不了,还需要对权限进行调整,允许匿名用户访问nexus 的yum仓库。
创建一个权限
请添加图片描述

选择仓库查看权限即可

请添加图片描述
请添加图片描述

就这些配置可以了吗? 不行,还得把这个权限赋给角色,再把这个角色赋给用户。

1.3 配置角色

创建一个角色
请添加图片描述
请添加图片描述

1.4 把角色授权给匿名用户

请添加图片描述请添加图片描述

至此,nexus这边的配置完成了。可以退出登录,验证下是否能流量刚创建的仓库。
请添加图片描述

如果看不到仓库需要检查下是否权限配置有错误。

2 配置nginx代理

这里可能有点绕,大家结合上面的架构图看就比较好理解,我这里主要针对项目的网络环境,大家可以根据自身的网络环境决定是否要配置多层代理。
(笔者这里的网络环境要求比较严格,内网服务器访问DMZ服务需要申请开通网络权限,内网机器又太多,所以在内网又架设了一层nginx代理,其他内网机器yum配置这个内网机器,就不用每个内网机器去申请开放网络权限了)

2.1 配置前置机nginx代理
server {
    listen       18082;
    server_name  nexus.xxx.com;

    location / {
        proxy_pass http://nexus.xxx.com:8082;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}
2.2 配置军事区服务器的nginx代理

反向代理到DMZ区的nginx

server {
    listen       18082;
    server_name  _;

    location / {
        proxy_pass http://nexus.xxx.com:18082;
        proxy_set_header Host nexus.yz.example.com;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

配置下hosts

vim /etc/hosts
10.20.101.1 nexus.xxx.com

3 配置yum配置文件

如下图可以查看到yum仓库的地址
请添加图片描述

配置 yum.repo

[epel]
name=CentOS-$releasever - Epel
baseurl = "http://10.10.101.1:10081/repository/lx-test/epel/$releasever/$basearch"
enabled = 1
gpgcheck = 0

[base]
name=CentOS-$releasever - Base
baseurl = "http://10.10.101.1:10081/repository/lx-test/centos/$releasever/os/$basearch/"
enabled = 1
gpgcheck = 0

[updates]
name=CentOS-$releasever - Updates
baseurl="http://10.10.101.1:10081/repository/lx-test/centos/$releasever/updates/$basearch/"
enabled = 1
gpgcheck=0

[extras]
name=CentOS-$releasever - Extras
baseurl="http://10.10.101.1:10081/repository/lx-test/centos/$releasever/extras/$basearch/"
enabled = 1
gpgcheck=0

至此,配置完成,可以使用yum makcache fast 测试下。
没有问题的话,会在nexus仓库缓存相关数据
请添加图片描述
如有疑问可以扫码联系
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值