Linux下使用tunasync搭建内网镜像站

2019年11月20日17:40:21 2 9,894

内网镜像站对于很多企业限制外网访问来说是非常必要的,极大方便了研发安装各种软件依赖。搭建镜像站的方式很多,这边选用清华大学开源软件镜像站开发的镜像管理器tunasync来搭建。

一、环境准备

对于镜像站,需求最大的就是磁盘。这根据需要同步的源来决定磁盘大小,CentOS最少需要500G;Ubuntu需要1.5T;pypi的不建议同步需要磁盘空间太大

二、系统安装

tunasync 项目提供预编译版程序,可以直接从 Github releases 下载使用预编译版本。

三、同步配置

tunasync主要有manager.conf和worker.conf两个配置文件来控制

manager.conf配置

debug = false
[server]
addr = "127.0.0.1"
port = 14242
ssl_cert = ""
ssl_key = ""

[files]
db_type = "bolt"
db_file = "/usr/local/tunasync/db/manager.db"
ca_cert = ""

port:监听端口

db_file:数据库文件路径

worker 配置

这边以CentOS为例,如果有其他的源需要同步,则在worker配置文件里添加一个mirrors模块

[global]
name = "mirror_worker"
log_dir = "/usr/local/tunasync/log/{{.Name}}"
##镜像下载地址
mirror_dir = "/cache1/mirror"
##并发线程数
concurrent = 10
##同步周期,分钟
interval = 10080

[manager]
##manager地址
api_base = "http://localhost:14242"
token = "some_token"
ca_cert = ""

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

[server]
hostname = "localhost"
listen_addr = "127.0.0.1"
##worker监听端口
listen_port = 16010
ssl_cert = ""
ssl_key = ""

[[mirrors]]
##镜像名称
name = "centos"
provider = "rsync"
##同步地址,最后的"/"不能少
upstream = "rsync://rsync.mirrors.ustc.edu.cn/repo/centos/"
interval = 240
use_ipv6 = false

清华大学开源软件镜像站提供了很多自定义镜像脚本,可以参考 Github releases 

四、服务启动

启动 tunasync 需开启 manager 进程与 worker 进程,先启动 manager,后启动 worker。为了便于监控系统进程情况,建立 /usr/local/tunasync/log/ 目录,所有进程的工作日志在该目录中(注意,此处日志为系统终端输出日志,与 tunasync 自身工作日志不同)

开启manager服务(后台进程):

$ tunasync manager --config /usr/local/tunasync/conf/manager.conf >>/usr/local/tunasync/log/manager.log

开启 worker 服务:

$ tunasync worker --config /usr/local/tunasync/conf/worke.conf

五、运行维护

参考Github。有删除、热重载、更新镜像大小

六、WEB前端

服务搭好后,前端可以使用Nginx来部署,这边就不重复说明了。WEB界面找了一个Github访的网易镜像站的WEB界面,个人觉得还不错。直达链接

weinxin
聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • avatar jxliu 5

      你好,请问前端的html文件需要自己写吗?好像是不能写在镜像文件里面的

        • avatar yangfannie Admin

          @jxliu 前端页面的就看你要做成什么样子了,要好看肯定得自己写,如果只是有链接可以点就很简单了,配置下nginx就可以