使用Nexus代理yum、npm、pypi

1,047 阅读2分钟

这是我参与更文挑战的第12天,活动详情查看: 更文挑战

一、Nexus介绍

生产环境中,一般不会允许所有服务器都能访问公网,理想的情况是有几台服务器作为访问代理,同时作为缓存服务器。当服务器中有所需包时通过内网获取,如无则通过公网获取同时在本地保存。

常用搭建私有yum源的方法是createrepo生成本地仓库,其它服务器通过http访问仓库。这种方法的弊端是如果当前仓库中没有所需软件包会导致安装失败,不会去其它源获取数据。

Nexus是一个强大的仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。

二、Nexus 3.x部署(On Linux)

2.1、下载源码包

https://help.sonatype.com/repomanager3/download

2.2、解压

$ tar zxf nexus-3.23.0-03-unix.tar.gz
$ mv nexus-3.23.0-03 sonatype-work /data
$ echo 'NEXUS_HOME="/data/nexus-3.23.0-03"' >> ~/.bashrc
$ echo 'run_as_user="root"' >> /data/nexus-3.23.0-03/bin/nexus.rc

2.3、服务配置

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

[Unit]
Description=nexus service
After=network.target

[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/data/nexus-3.23.0-03/bin/nexus start
ExecStop=/data/nexus-3.23.0-03/bin/nexus stop
User=root
Restart=on-abort

[Install]
WantedBy=multi-user.target

2.4、启动服务

$ systemctl start nexus # 此处启动后,请耐心等待,netstat -tunlp 查看端口8081监听后继续

2.5、登录Nexus

http://IP:8081/

查看密码

$ cat /data/sonatype-work/nexus3/admin.password

image.png

三、Nexus配置代理仓库

3.1、yum

1、创建repository

https://mirrors.tuna.tsinghua.edu.cn/centos/

创建完成后,此时 Repository 的状态为: Online - Ready to connect

2、客户端配置 Yum 文件

$ vim /etc/yun.repos.d/CentOS-Base.rpeo
[Anchnet-Base]
name=Anchnet Mirrors
baseurl=http://mirrors.anchnet.com/repository/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=0

3、安装测试

清理并重建 yum 缓存

[root@k8s-master ~]# yum clean all && yum makecache
Loaded plugins: fastestmirror
Cleaning repos: Anchnet-Base
Cleaning up everything
Loaded plugins: fastestmirror
Anchnet-Base                                                                                                                                                      | 2.2 kB  00:00:00     
(1/4): Anchnet-Base/7/x86_64/group_gz                                                                                                                             | 153 kB  00:00:00     
(2/4): Anchnet-Base/7/x86_64/primary                                                                                                                              | 2.9 MB  00:00:03     
(3/4): Anchnet-Base/7/x86_64/other                                                                                                                                | 1.6 MB  00:00:02     
(4/4): Anchnet-Base/7/x86_64/filelists                                                                                                                            | 7.1 MB  00:00:11     
Determining fastest mirrors
Anchnet-Base                                                                                                                                                                 10070/10070
Anchnet-Base                                                                                                                                                                 10070/10070
Anchnet-Base                                                                                                                                                                 10070/10070
Metadata Cache Created

安装 httpd 包测试

$ yum install httpd -y

image.png

3.2、MySQL

1、创建repository

http://repo.mysql.com/yum/mysql-8.0-community/el/

创建完成后,此时 Repository 的状态为: Online - Ready to connect

2、客户端配置 Yum 文件

$ vim /etc/yun.repos.d/mysql-8.rpeo
[MySQL8]
name=Mysql for RHEL/CentOS $releasever - $basearch
baseurl=http://mirrors.anchnet.com/repository/MySQL8.0/$releasever/$basearch/
enabled=1
gpgcheck=0

3、安装测试

$ yum install -y mysql-community-client-8.0.11 mysql-community-server-8.0.11

image.png

3.3、npm

1、创建repository

https://registry.npm.taobao.org/

创建完成后,此时 Repository 的状态为: Online - Ready to connect

2、客户端设置 npm 地址

$ npm config set registry http://mirrors.anchnet.com/repository/npm/

3、安装测试

$ npm i eslint

image.png

3.4、pypi

1、创建repository

https://mirrors.aliyun.com/pypi

创建完成后,此时 Repository 的状态为: Online - Ready to connect

2、客户端配置 pip.conf 文件

$ vim .pip/pip.conf
[global]
trusted-host = mirrors.anchnet.com
index-url = http://mirrors.anchnet.com/repository/pypi/simple/

3、安装测试

$ pip install django
[root@k8s-master ~]# pip3 install django
Collecting django
  Downloading http://mirrors.anchnet.com/repository/pypi/packages/django/3.1.1/Django-3.1.1-py3-none-any.whl (7.8MB)
    100% |████████████████████████████████| 7.8MB 1.4MB/s 
Requirement already satisfied: pytz in /usr/local/lib/python3.6/site-packages (from django)
Requirement already satisfied: asgiref~=3.2.10 in /usr/local/lib/python3.6/site-packages (from django)
Requirement already satisfied: sqlparse>=0.2.2 in /usr/local/lib/python3.6/site-packages (from django)
Installing collected packages: django
Successfully installed django-3.1.1