当前位置: 首页 >> 原创·技术 >> 201912231620 公司内网搭建各种同步源centos/epel/ubuntu/pypi >> 正文

201912231620 公司内网搭建各种同步源centos/epel/ubuntu/pypi

4周前 (12-23)     作者:傲孤漠客     分类:原创·技术     阅读次数:100     评论(0)    

本教程是为了那些企业,在公司内网搭建源,实现节省企业流量用途。

本案例包含centos/epel/ubuntu/pypi,其他的逐步增加


一、参考资料

  1. 基于bandersnatch搭建pip本地源

  2. tunasync-scripts/pypi.sh

  3. 清华大学开源软件镜像站

image.png

二、脚本

#centos(仅同步包,不同步ISO,最小节省空间,约119G更新时间:2019年12月23日 16:31:44)

nohup rsync -dvlt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/centos/ /www/wwwroot/repo/centos/ &>>/www/wwwroot/centos_dirs_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/centos/7/os/ /www/wwwroot/repo/centos/7/os/ &>>/www/wwwroot/centos_7_os_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/centos/7/updates/ /www/wwwroot/repo/centos/7/updates/ &>>/www/wwwroot/centos_7_updates_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/centos/7/extras/ /www/wwwroot/repo/centos/7/extras/ &>>/www/wwwroot/centos_7_extras_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/centos/7/centosplus/ /www/wwwroot/repo/centos/7/centosplus/ &>>/www/wwwroot/centos_7_centosplus_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/centos/6/os/ /www/wwwroot/repo/centos/6/os/ &>>/www/wwwroot/centos_6_os_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/centos/6/updates/ /www/wwwroot/repo/centos/6/updates/ &>>/www/wwwroot/centos_6_updates_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/centos/6/extras/ /www/wwwroot/repo/centos/6/extras/ &>>/www/wwwroot/centos_6_extras_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/centos/6/centosplus/ /www/wwwroot/repo/centos/6/centosplus/ &>>/www/wwwroot/centos_6_centosplus_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/centos/6/contrib/ /www/wwwroot/repo/centos/6/contrib/ &>>/www/wwwroot/centos_6_contrib_$(date "+%Y%m%d%H%M%S").log &


#epel(仅同步包,最小节省空间,49G更新时间:2019年12月23日 16:31:44)

nohup rsync -dvlt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/epel/ /www/wwwroot/repo/epel/ &>>/www/wwwroot/epel_dirs_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/epel/7/x86_64/ /www/wwwroot/repo/epel/7/x86_64/ &>>/www/wwwroot/epel_7_x86_64_Packages_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/epel/6/x86_64/ /www/wwwroot/repo/epel/6/x86_64/ &>>/www/wwwroot/epel_6_x86_64_Packages_$(date "+%Y%m%d%H%M%S").log &


#ubuntu(仅同步包,不同步ISO,最小节省空间,约1.4T更新时间:2019年12月23日 16:31:44)

nohup rsync -dvlt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/ubuntu/ /www/wwwroot/repo/ubuntu/ &>>/www/wwwroot/ubuntu_dirs_$(date "+%Y%m%d%H%M%S").log &
#nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/ubuntu/dists/xenial/ /www/wwwroot/repo/ubuntu/dists/xenial/ &>>/www/wwwroot/ubuntu_dists_xenial_Packages_$(date "+%Y%m%d%H%M%S").log &
#nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/ubuntu/dists/xenial-backports/ /www/wwwroot/repo/ubuntu/dists/xenial-backports/ &>>/www/wwwroot/ubuntu_dists_xenial-backports_Packages_$(date "+%Y%m%d%H%M%S").log &
#nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/ubuntu/dists/xenial-updates/ /www/wwwroot/repo/ubuntu/dists/xenial-updates/ &>>/www/wwwroot/ubuntu_dists_xenial-updates_Packages_$(date "+%Y%m%d%H%M%S").log &
#nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/ubuntu/pool/main/ /www/wwwroot/repo/ubuntu/pool/main/ &>>/www/wwwroot/ubuntu_pool_main_Packages_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/ubuntu/pool/ /www/wwwroot/repo/ubuntu/pool/ &>>/www/wwwroot/ubuntu_pool_Packages_$(date "+%Y%m%d%H%M%S").log &
nohup rsync -alvrt --delete-after rsync://mirrors4.tuna.tsinghua.edu.cn/ubuntu/dists/ /www/wwwroot/repo/ubuntu/dists/ &>>/www/wwwroot/ubuntu_dists_Packages_$(date "+%Y%m%d%H%M%S").log &


#pypi

1.安装bandersnatch

#!/bin/bash
cd /opt
virtualenv --python=/usr/bin/python3 bandersnatch
cd bandersnatch
source ./bin/activate
pip install -r https://bitbucket.org/pypa/bandersnatch/raw/stable/requirements.txt
ln -s /opt/bandersnatch/bin/bandersnatch /usr/local/bin/bandersnatch


2.使用清华源脚本

TUNASYNC_WORKING_DIR=/www/wwwroot/repo/pypi
BANDERSNATCH=${BANDERSNATCH:-"/usr/local/bin/bandersnatch"}
TUNASYNC_UPSTREAM=${TUNASYNC_UPSTREAM:-"https://pypi.org"}
CONF="/tmp/bandersnatch.conf"
INIT=${INIT:-"0"}
if [ ! -d "$TUNASYNC_WORKING_DIR" ]; then
mkdir -p $TUNASYNC_WORKING_DIR
INIT="1"
fi
echo "Syncing to $TUNASYNC_WORKING_DIR"
if [[ $INIT == "0" ]]; then
cat > $CONF << EOF
[mirror]
directory = ${TUNASYNC_WORKING_DIR}
master = ${TUNASYNC_UPSTREAM}
json = true
timeout = 15
workers = 10
hash-index = false
stop-on-error = false
delete-packages = true
EOF
/usr/bin/timeout -s INT 36000 $BANDERSNATCH -c $CONF mirror 
if [[ $? == 124 ]]; then
echo 'Sync timeout (/_\\)'
exit 1
fi
else
cat > $CONF << EOF
[mirror]
directory = ${TUNASYNC_WORKING_DIR}
master = ${TUNASYNC_UPSTREAM}
json = true
timeout = 15
workers = 10
hash-index = false
stop-on-error = false
delete-packages = false
EOF
$BANDERSNATCH -c $CONF mirror
fi
TODOFILE="${TUNASYNC_WORKING_DIR}/todo"
if [[ -f $TODOFILE ]]; then
rsize=`stat -c "%s" ${TODOFILE}`
if [[ "$rsize" != "0" ]]; then
echo "Sync Failed T_T"
exit 1
fi
fi
echo "Sync Done ^_-"
exit 0


三、使用宝塔面板,搭建WEB页面

本案例使用apache,目录别名的方式


四、(可选)公司内网DNS劫持

本案例中,服务器地址为10.170.133.23,那么使用dnsmasq强制解析以下域名

vi /etc/dnsmasq.conf

#加入以下行
#############repolist######################
address=/mirrorlist.centos.org/10.170.133.23
address=/download.fedoraproject.org/10.170.133.23
#address=/mirrors.aliyun.com/10.170.133.23
#address=/mirrors.aliyuncs.com/10.170.133.23
#address=/mirrors.cloud.aliyuncs.com/10.170.133.23
#address=/mirrors.163.com/10.170.133.23
address=/mirror.centos.org/10.170.133.23
address=/wildcard.fedoraproject.org/10.170.133.23
address=/us.archive.ubuntu.com/10.170.133.23
address=/cn.archive.ubuntu.com/10.170.133.23
address=/security.ubuntu.com/10.170.133.23







除非注明,发表在“傲孤漠客”的文章『201912231620 公司内网搭建各种同步源centos/epel/ubuntu/pypi』版权归傲孤漠客所有。 转载请注明出处为“本文转载于『傲孤漠客』原地址https://www.imoke.org/post/20191223976.html

评论

发表评论   

昵称*

E-mail*(建议输入,以便收到博主回复的提示邮件)

网站

分享:

支付宝

微信