阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Nexus配置Linux Yum Repository代理

161次阅读
没有评论

共计 2779 个字符,预计需要花费 7 分钟才能阅读完成。

一、使用场景

在生产环境中,我们不可能所有的服务器都能连接外网更新 RPM 包,比较理想的环境是:有一台 Linux 服务器可以连接外网,剩余的服务器通过这台 YUM 服务器更新。以前比较传统的做法是先把包下载到内网中的 YUM 服务器上,然后通过 createrepo 命令生成本地仓库,其余服务器通过 HTTP 访问这个链接,这种做法比较费时费事。有没有一种比较好的方式,让我们直接通过这台服务器代理连接到公网的 163、阿里 YUM 仓库呢,这就是本次介绍的 Nexus 代理。无论你的客户机是 CentOS6 还是 CentOS7 又或者是 Ubuntu,不论你是想用 YUM 还是 PIP 又或者是 NPM 包管理器,Nexus 都能满足你的需求。

二、安装 Nexus

这里我使用 CentOS7 作为 YUM Repository 代理服务器

# 确认已安装 JRE8
# java -version
openjdk version “1.8.0_161”
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
 
# 创建 nexus 用户,并设置该用户 File Handle Limits
# useradd nexus
# echo “nexus – nofile 65536” >> /etc/security/limits.conf
 
# 下载并解压 nexus 到 /opt 目录,并设置 nexus 用户权限
# wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
# tar -xzvf latest-unix.tar.gz -C /opt
# mv /opt/nexus* /opt/nexus
# chown -R nexus:nexus /opt/nexus /opt/sonatype-work/
 
# 设置服务启动用户
# echo ‘run_as_user=”nexus”‘ > /opt/nexus/bin/nexus.rc
 
# 这里使用 systemd 管理服务
# cat <<EOF >/etc/systemd/system/nexus.service
[Unit]
Description=nexus service
After=network.target
 
[Service]
Type=forking
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=nexus
Restart=on-abort
 
[Install]
WantedBy=multi-user.target
EOF
 
# systemctl daemon-reload
# systemctl enable nexus.service
# systemctl start nexus.service
 
# 最后,查看 log 了解服务运行状态
# tail -f /opt/sonatype-work/nexus3/log/nexus.log

三、配置 Nexus

使用浏览器打开 http://IP:8081/,用户名密码是 admin:admin123

点击配置 ->Repositories-> 选择类型(yum proxy)

自定义一个名字,例如:yum-proxy

输入 URL: http://mirrors.163.com/centos/

保存

四、客户机配置 yum repo 文件

# cat nexus.repo
[nexus]
name=Nexus Repository
baseurl=http://IP:8081/repository/yum-proxy/$releasever/os/$basearch/
enabled=1
gpgcheck=0

五、附上 163 服务器 CentOS7 repo 文件内容

[base]
name=CentOS-$releasever – Base – 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
 
#released updates
[updates]
name=CentOS-$releasever – Updates – 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever – Extras – 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever – Plus – 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

至此,客户端就可以连接自己的 repo 服务器下载 rpm 了,如果所须要的包是第一次下载,那么 proxy 会连接指定的外网 YUM 仓库下载,但如果是 proxy 已经存在的,那么直接从 proxy 代理服务器上拉下来,速度会比外网下载快很很多!

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2779字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中