概述
因某些网络安全要求某些服务器会关禁止上外网,这就导致无法使用阿里云等公有云镜像仓库,导致我们安装包、更新包带来不便,当然你也可以直接挂载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.weigaoholding.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仓库缓存相关数据
如有疑问可以扫码联系
最后
以上就是健壮煎蛋为你收集整理的使用Nexus做内网仓库(yum)的全部内容,希望文章能够帮你解决使用Nexus做内网仓库(yum)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复