201912161608 CentOS7搭建TUNA mirrors 主页
4年前 (2019-12-16) 作者:iMoke 分类:原创·技术 阅读次数:3572 评论(4)(作为一个学渣,向清华致敬)
TUNA官方页面:https://github.com/tuna/mirror-web
Hekyll官方页面:http://jekyllcn.com/
注:本教程未完结,暂时请勿尝试。
一、参考资料
(作为一个学渣,向清华致敬)
TUNA 前端页面:https://github.com/tuna/mirror-web
TUNA 后端页面:https://github.com/tuna/tunasync
Hekyll中文页面:http://jekyllcn.com/
二、部署
1.安装 nodejs
yum install -y nodejs
2.安装 ruby 2.2.4 and rubygems
Step 1: Install Required Packages
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel sqlite-devel
注:此处会提示“没有可用软件包 iconv-devel”,目前暂未发现异常。
Step 2: Compile ruby 2.2.4 source code
cd $HOME #wget -c https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.gz TUNA官方页面写的是2.2.4版本,但是实际安装提示要求>2.3.0版本。因此,我改用2.6.5版本部署(20191216最新版本为2.6.5) wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.5.tar.gz #wget http://d.rc.it/Server/ruby/ruby-2.6.5.tar.gz tar zxvf ruby-2.6.5.tar.gz cd ruby-2.6.5 ./configure make && make install
Step 3: Install rubygems
cd $HOME #wget -c https://rubygems.org/rubygems/rubygems-2.4.8.tgz TUNA官方页面写是2.4.8版本,但是考虑到ruby已更新到最新,因此我改用3.1.1版本部署(20191216最新版本为3.1.1) wget https://rubygems.org/rubygems/rubygems-3.1.1.tgz #wget http://d.rc.it/Server/rubygems/rubygems-3.1.1.tar.gz tar zxvf rubygems-3.1.1.tgz cd rubygems-3.1.1 ruby setup.rb
3.安装 bundle 和 build
gem install bundle gem install build #下面这行,官方页面没有写。因此后面的jekyll命令无法执行。 gem install jekyll bundler
#imoke补充
yum install -y git cd $HOME git clone https://github.com/tuna/mirror-web.git
为正常运行,一些动态数据文件需要下载(注:这里改了一下顺序)
cd mirror-web mkdir -p static/status wget https://mirrors.tuna.tsinghua.edu.cn/static/tunasync.json -O static/tunasync.json wget https://mirrors.tuna.tsinghua.edu.cn/static/tunet.json -O static/tunet.json wget https://mirrors.tuna.tsinghua.edu.cn/static/status/isoinfo.json -O static/status/isoinfo.json
4.Fork mirrors source code(注:这里改了一下顺序)
bundle install
注:命令1执行时会提示,貌似并没什么问题。
注:在Resolving dependencies....................这行,需要较长时间,我等待了大约5-10分钟。
(中间省略多行)
jekyll build
启动网站
bundle exec jekyll serve
界面效果
到这里还没有完,我们只是把前端界面做好了,后端同步依然是什么都没有。所以还需要继续进行
一、安装go语言
yum install -y golang git
二、拷贝tunasync程序
cd $HOME #配置go语言环境路径,本例以$HOME路径为例 wget https://github.com/tuna/tunasync/releases/download/v0.3.7/tunasync-linux-bin.tar.gz tar zxvf tunasync-linux-bin.tar.gz -C /usr/local/bin/
配置
mkdir ~/tunasync_demo mkdir /tmp/tunasync
编译内容:vi ~/tunasync_demo/worker.conf
[global] name = "test_worker" log_dir = "/tmp/tunasync/log/tunasync/{{.Name}}" mirror_dir = "/tmp/tunasync" concurrent = 10 interval = 1 [manager] api_base = "http://localhost:12345" 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 = "elvish" provider = "rsync" upstream = "rsync://rsync.elvish.io/elvish/" use_ipv6 = false
编译内容:vi ~/tunasync_demo/manager.conf
debug = false [server] addr = "127.0.0.1" port = 12345 ssl_cert = "" ssl_key = "" [files] db_type = "bolt" db_file = "/tmp/tunasync/manager.db" ca_cert = ""
运行
nohup tunasync manager --config ~/tunasync_demo/manager.conf & nohup tunasync worker --config ~/tunasync_demo/worker.conf &
本例中,镜像的数据在/tmp/tunasync/
查看同步状态
tunasynctl list -p 12345 --all
tunasynctl 也支持配置文件。配置文件可以放在 /etc/tunasync/ctl.conf 或者 ~/.config/tunasync/ctl.conf 两个位置,后者可以覆盖前者的配置值。
配置文件内容为:
manager_addr = "127.0.0.1" manager_port = 12345 ca_cert = ""
-------------------------------------------------------------------------------------------------------------------------------
Build In Docker
docker build -t builden -f Dockerfile.build . #docker run -it -v /path/to/mirror-web/:/data builden docker run -it -v /www/wwwroot/mirror.mmoke.com/:/data builden
最后,清理垃圾文件
cd $HOME rm -rf ruby-2.6.5* rm -rf rubygems-3.1.1*
评论
发表评论