介绍一个多源缓存仓库nexus

00:文章简介

记录一下nexus这个软件,可以设置yum、apt、等等多个系统的软件仓库。

01:安装nexus

1.1:安装JDK1.8

机器配置需大于4GB

1
apt install openjdk-8-jdk

1.2:安装nexus

1
2
3
4
5
6
7
8
9
10
cd /usr/local/src
上传文件
tar xf nexus-3.33.0-01-unix.tar.gz
ln -sv /usr/local/src/nexus-3.33.0-01 /usr/local/nexus
cd /usr/local/nexus

./bin/nexus --help
./bin/nexus run
./bin/nexus start

1.3:配置web

访问:http://172.20.253.201:8081/

点击Sign in 会弹出密码文件位置

image

输入新密码

image

授权匿名下载

image

不共享数据

image

image

1.4: 默认仓库类型

Hosted:本地仓库,一般部署自己公司制作的第三方包

Proxy:代理仓库,用于代理远程的公共仓库,例如aliyun、tuna、华为云镜像站的源

Group:仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,直接引用一个group的地址即可。

02:创建缓存源

2.1:创建apt源

2.1.1:创建一个Blob存储位置

type: file,

name: apt-tuna

其他默认

image

2.1.2:配置代理apt仓库

repository-repositories-create repository-apt(proxy)

1
2
3
4
5
6
# 依次设置
name: tuna-apt-proxy
distribution: bionic
remote storage: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/
storage: apt-tuna
# 最后点Create repository

image

image

2.1.3:客户端配置

1
2
3
4
5
6
7
8
9
10
11
12
# 备份原来的源文件
mv /etc/apt/source.list /etc/apt/source.list.bak
# 创建新的源文件
vim /etc/apt/source.list
deb http://172.20.253.201:8081/repository/tuna-proxy/ focal main restricted universe multiverse
deb http://172.20.253.201:8081/repository/tuna-proxy/ focal-updates main restricted universe multiverse
deb http://172.20.253.201:8081/repository/tuna-proxy/ focal-backports main restricted universe multiverse
deb http://172.20.253.201:8081/repository/tuna-proxy/ focal-security main restricted universe multiverse

# 测试是否可用
apt update
apt install mariadb-server

2.1.4:查看缓存下来的源文件

Browse-Browse-[tuna-proxy]

image

2.2:配置yum缓存源

2.3:配置epel缓存源

2.4:配置docker-ce缓存源

2.5:配置pypi缓存源

03:备份仓库文件

3.1:查看服务器上的文件

blob数据存放路径(创建时能看见):

1
2
3
4
5
6
7
8
cd /usr/local/src/sonatype-work/nexus3/blobs/apt-tuna
root@nexus:/usr/local/src/sonatype-work/nexus3/blobs/apt-tuna# tree -L 1
.
├── content
├── D3A26E43-94EE5731-E30F3B51-EC37EEDF-71DD08E7-deletions.index
├── D3A26E43-94EE5731-E30F3B51-EC37EEDF-71DD08E7-metrics.properties
└── metadata.properties

元数据存放位置:

元数据存放在Nexus的数据库中

备份时必须将blob和元数据一起备份,才能保证后期恢复数据的完整性

3.2:nexus数据备份

3.2.1: 创建备份的blob位置

备份的位置最好是网络存储,避免备份数据丢失

image

3.2.2:配置blob备份任务

System-Tasks-[create task]

image

选择Compact blob store

image

3.2.3:配置元数据备份任务

image

3.2.4:测试备份

点击一个任务-run

image

image

3.2.4:查看备份文件

1
2
3
4
5
6
# tree /nfs/nexus-db/
/nfs/nexus-db/
├── component-2021-08-20-22-35-23-3.33.0-01.bak
├── config-2021-08-20-22-35-23-3.33.0-01.bak
└── security-2021-08-20-22-35-23-3.33.0-01.bak