使用tunasync搭建系统镜像仓库

机房有内网系统仓库的需求,看了一下清华大学有现成的开源项目tunasync,可以很方便的进行管理,搭建也很简单,所以直接用就可以了

接下来开始记录分步的步骤,系统为CentOS7

tunasync只是一个管理软件,本质上还是rsync,所以我们一开始就需要安装下依赖

yum install rsync -y

 

接着下载tunasync并解压,然后将二进制的文件移动到/usr/bin下

wget https://github.com/tuna/tunasync/releases/download/v0.7.1/tunasync-linux-amd64-bin.tar.gz
#基于amd64,如果是ARM系列,请去https://github.com/tuna/tunasync/releases自行替换下载一个
tar xf tunasync-linux-amd64-bin.tar.gz
mv tunasync /usr/bin/
mv tunasynctl /usr/bin/
创建仓库文件夹

mkdir -p /home/mirrors
创建日志文件夹

mkdir -p /home/logs
创建配置文件夹

mkdir /etc/tunasync
创建manager的配置文件

现在开始编辑manager配置文件

vi /etc/tunasync/manager.conf
将以下内容根据自己的需求修改后写入manager的配置文件内

debug = false

[server]
addr = "127.0.0.1" #manager服务的监听地址,默认127.0.0.1一般就可以了
port = 12345 # manager服务监听端口
ssl_cert = "" #证书配置,可为空
ssl_key = "" #证书配置,可为空

[files]
db_type = "bolt"
db_file = "/etc/tunasync/manager.db" #数据库文件位置
ca_cert = ""

创建worker.conf配置文件

vi /etc/tunasync/worker.conf
将以下内容根据自己的需求修改后写入worker的配置文件内,mirrors部分仅作示范写了两个,可以根据自身需要自由添加或删减

[global]
name = "worker" # worker名字
log_dir = "/home/logs/{{.Name}}" # 日志存储位置
mirror_dir = "/home/mirrors" # 仓库存储位置
concurrent = 10 # 线程数
interval = 240 # 同步周期,单位分钟

[manager]
api_base = "http://127.0.0.1:12345" # manager的API地址
token = ""
ca_cert = ""

[cgroup]
enable = false
base_path = "/sys/fs/cgroup"
group = "tunasync"

[server]
hostname = "localhost"
listen_addr = "127.0.0.1"
listen_port = 6000
ssl_cert = ""
ssl_key = ""

[[mirrors]]
name = "centos"
provider = "rsync"
upstream = "rsync://ftp.kaist.ac.kr/CentOS/"
use_ipv6 = false

[[mirrors]]
name = "ubuntu"
provider = "rsync"
upstream = "rsync://ftp.kaist.ac.kr/ubuntu/"
use_ipv6 = false

下载tunasync启动停止脚本

wget -P /etc/init.d/ https://raw.githubusercontent.com/whsir/tunasync-bin/master/tunasync-manager
wget -P /etc/init.d/ https://raw.githubusercontent.com/whsir/tunasync-bin/master/tunasync-worker
chmod +x /etc/init.d/tunasync-manager
chmod +x /etc/init.d/tunasync-worker
启动服务

/etc/init.d/tunasync-manager start
/etc/init.d/tunasync-worker start

到这里为止,自建仓库就算完成了,可以通过以下命令来查看进程

tunasynctl list -p 12345 --all
如果没有特殊的对外展示需求,直接安装一个nginx或者apache,把网站根目录设置为/home/mirrors就可以进行访问了

阅读剩余
THE END