nexus配置yum私有仓库
目录
生产环境,多数主机不可出外网,yum安装起来不太方便,随着生产环境主机数量增多,考虑换一种姿势配置yum代理,就得到了nexus这个东西,特此记录!可以参考nexus官方文档!
一、环境准备
OS | hostname | IP | role | 是否可出网 |
---|---|---|---|---|
CentOS 7.6 | nexus | 10.4.7.101 | nexus服务端 | 是 |
CentOS 7.6 | client | 10.4.7.102 | yum客户端 | 否 |
二、系统默认参数优化
$ cat > /etc/security/limits.conf << EOF * - nofile 655360 * - memlock unlimited * - stack 655360 * - nproc unlimited EOF $ cat > /etc/sysctl.conf << EOF kernel.sysrq = 0 kernel.core_uses_pid = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 fs.file-max=655360 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 kernel.pid_max = 655360 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_max_tw_buckets = 10000 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_sack = 1 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_ecn = 0 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_max_orphans = 655360 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_mem = 65536 131072 262144 net.ipv4.udp_mem = 65536 131072 262144 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 16384 16777216 net.ipv4.ip_local_port_range = 1024 65535 net.ipv4.route.gc_timeout = 100 # 禁止icmp重定向报文 net.ipv4.conf.all.accept_redirects = 0 # 禁止icmp源路由 net.ipv4.conf.all.accept_source_route = 0 net.core.somaxconn = 65535 net.core.rmem_default = 8388608 net.core.wmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.netdev_max_backlog = 262144 vm.swappiness = 10 vm.overcommit_memory = 1 vm.max_map_count = 262144 EOF
三、安装java环境
下载Linux环境下的jdk1.8,请去(官网)中下载jdk的安装文件;
$ mkdir /usr/local/java/ $ tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java/ $ vim /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_171 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH $ source /etc/profile $ java -version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
四、安装nexus
nexus的二进制包不好从官方下,如果你们有什么国内的下载地址,可以评论里分享下,我这里费尽周折下载了一个最新版本(2020-12-12日下载),提取链接:百度网盘( 提取码:ylpw )。
4.1 解压安装
$ wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.29.0-02-unix.tar.gz # 官方下载链接(如已下载我网盘的包,可不执行wget,大概率下载不下来) $ mkdir /data $ tar zxvf nexus-3.29.0-02-unix.tar.gz -C /data/ $ cd /data $ mv sonatype-work/ nexus-3.29.0-02/ $ ln -sf nexus-3.29.0-02/ nexus
4.2 修改监听地址及端口(可不做修改)
$ vim /data/nexus/etc/nexus-default.properties application-port=8081 application-host=0.0.0.0
4.3 修改jvm参数、日志等存储路径
$ vim /data/nexus/bin/nexus.vmoptions -Xms4096m # 最小可用内存 -Xmx4096m # 最大可用内存(建议与最小可用内存保持一致) -XX:MaxDirectMemorySize=4096m -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=/data/nexus/sonatype-work/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=/data/nexus/sonatype-work/nexus3 -Dkaraf.log=/data/nexus/sonatype-work/nexus3/log -Djava.io.tmpdir=/data/nexus/sonatype-work/nexus3/tmp -Dkaraf.startLocalConsole=false -Djava.endorsed.dirs=lib/endorsed # 将上面的路径都修改为绝对路径
4.4 启动nexus
注:root用户启动可能会有问题,所以需要创建nexus用户用于启动nexus服务!
$ useradd nexus $ chown -R nexus /data $ ln -sf /data/nexus/bin/nexus /usr/local/bin/ $ su -s /bin/bash -c "nexus run" nexus # 前台启动nexus(可以看到日志信息,避免配置错误还在傻等着) $ su -s /bin/bash -c "nexus start" nexus # 后台启动nexus $ ss -lnptu | grep 8081 # 等待片刻后,确认8081端口在监听(8081端口启动较慢,多点耐心) tcp LISTEN 0 50 *:8081 *:* users:(("java",pid=7587,fd=788))
五、配置yum代理
5.1 初始化nexus
访问nexus的web管理页,URL:http://nexus_ip:8081 ,如下:
查看admin密码
$ cat /data/nexus/sonatype-work/nexus3/admin.password 8d47dd29-9cbf-472e-806e-7dbde49bbe4f
更新密码
开启匿名用户访问
5.2 创建rpm包存储系统
5.3 创建存储库
5.3.1 创建centos存储库
仓库类型说明
类型 | 说明 |
---|---|
hosted | 本地存储。像官方仓库一样提供本地私库功能 |
proxy | 从远程中央仓库中寻找数据的仓库 |
group | 组类型,能够组合多个仓库为一个地址提供服务 |
下面的 Remote storage填写: https://opsx.alibaba.com/centos/
5.3.2 创建epel存储库
下面的 Remote storage填写: http://mirrors.aliyun.com/epel/
5.4 查看存储库的URL
分别查看上面创建的两个存储库,如下:
可以添加docker-ce 和 kubernetes仓库,添加方法跟上述一致
docker-ce的 Remote storage填写: https://download.docker.com/linux/centos/
kubernetes的 Remote storage填写: http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
5.5 配置客户端
以下操作到不能出网的客户端进行配置。
# 配置默认的repo文件 $ cd /etc/yum.repos.d/ $ mkdir bak $ mv *.repo bak/ # 将下面的baseurl换成你自己的maven服务地址 $ cat > nexus.repo << EOF [os] name=os baseurl=http://10.4.7.101:8081/repository/centos/\$releasever/os/\$basearch/ enabled=1 gpgcheck=0 [updates] name=updates baseurl=http://10.4.7.101:8081/repository/centos/\$releasever/updates/\$basearch/ enabled=1 gpgcheck=0 [extras] name=extras baseurl=http://10.4.7.101:8081/repository/centos/\$releasever/extras/\$basearch/ enabled=1 gpgcheck=0 [centosplus] name=centosplus baseurl=http://10.4.7.101:8081/repository/centos/\$releasever/centosplus/\$basearch/ enabled=1 gpgcheck=0 [configmanagement] name=configmanagement baseurl=http://10.4.7.101:8081/repository/centos/\$releasever/configmanagement/\$basearch/ansible-29/ enabled=1 gpgcheck=0 [epel] name=Extra Packages for Enterprise Linux 7 - \$basearch baseurl=http://10.4.7.101:8081/repository/epel/7/\$basearch enabled=1 gpgcheck=0 [docker-ce] name=docker-ce baseurl=http://10.4.7.101:8081/repository/docker-ce/$releasever/$basearch/stable/ enabled=1 gpgcheck=0 [kubernetes] name=kubernetes baseurl=http://10.4.7.101:8081/repository/kubernetes/ enabled=1 gpgcheck=0 EOF $ yum clean all && yum makecache fast # 如果makecache报错,请关注最后一条输出,确认是哪个url找不到,然后进行修改。 $ yum repolist # 查看可用rpm包数量 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 源标识 源名称 状态 centosplus/7/x86_64 centosplus 69 configmanagement/7/x86_64 configmanagement 39 docker-ce/7/x86_64 docker-ce 108 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,552 extras/7/x86_64 extras 451 kubernetes kubernetes 633 os/7/x86_64 os 10,072 updates/7/x86_64 updates 1,640 repolist: 26,564 # 确认可用rpm包数量 # 随便yum几个试试效果 $ yum -y install nginx php ansible lsof strace
5.6 查看nexus缓存的rpm包
齐活,以后每个需要yum的客户端,只需要按照上面配置客户端进行即可。
*************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律