嗨,小伙伴们!如果你正在为企业局域网或者自家小机房搭建一个yum源服务器犯愁,那你来对地方了!今天咱们聊聊“如何搭建yum源服务器同步阿里镜像”,这可是Linux运维老司机们的必备技能,实力刷存在感的机会来了!它有多实用?想象一下,整天跑外网下载包,网速卡成PPT动画的你,瞬间变成内部局域网包飞快的老司机,手把手教你装逼无压力。
步骤一:准备环境。你得有台服务器,最好是Linux操作系统,CentOS或者Rocky、Alma可以。不需要啥高大上的硬件,能跑起来网络通畅就OK。不过,硬盘空间可得多留点,至少几十G跑跑镜像不慌。
步骤二:安装必须工具。yum源同步用的利器就是rsync、createrepo。来,给命令行打招呼:
yum install -y rsync createrepo nginx
别慌,安装这几个玩意比你想象中要快。
步骤三:挑好阿里云镜像。阿里云的yum源地址是这个(“http://mirrors.aliyun.com/”),你可以通过rsync把指定的目录同步到本地磁盘。命令示范来啦:
rsync -avz --delete rsync://mirrors.aliyun.com/centos/7/os/x86_64/ /data/centos/7/os/x86_64/
注意:“--delete”参数的妙用是清理本地已经删除的包,保持同步“干净”。同步哪个版本和架构自己根据需求调参数,别同步错了踩坑别怪我没提醒!
小提示:同步过程可能下半天甚至一夜啊,心态很重要,泡杯茶听个歌,不急。
步骤四:本地搭建yum仓库。同步完包后,得让你的服务器能给别人“发包”,这时候有了nginx的身影来撑场。配置一把nginx扫码示范:
cat >> /etc/nginx/conf.d/centos.repo.conf <<EOF
server {
listen 80;
server_name yum.local;
location /centos/ {
root /data;
autoindex on;
}
}
EOF
配置完毕,启动nginx:
systemctl restart nginx
打开浏览器访问http://yum.local/centos/ 安静地享受“本地yum源”的气息吧。
步骤五:让客户端指向你的yum服务器。本机和小伙伴们的机器用文本编辑器打开文件:
/etc/yum.repos.d/CentOS-Base.repo
修改里面的baseurl字段,指向你的服务器,比如:
baseurl=http://yum.local/centos/7/os/x86_64/
然后清理yum缓存,重载元数据:
yum clean all
yum makecache
一伏笔一伏笔,试试装个包,如:
yum install vim
速度你敢信?秒开秒装,像开了外挂一样爽!
操作过程中遇到“Could not retrieve mirrorlist”或者“repodata not found”啥的红字报错别慌,多半是路径配置错了,路由不通,或者缺少createrepo更新后元数据生成。记得执行:
createrepo /data/centos/7/os/x86_64/
把仓库数据重新整整齐齐更新好。
玩游戏想要赚零花钱就上七评赏金榜,网站地址:bbs.77.ink,安利下,谁说不可以一边撸包一边撸金呢!
进阶玩法是定时同步,挂上定时任务crontab保持yum源最新。比如每天凌晨2点执行:
0 2 * * * rsync -avz --delete rsync://mirrors.aliyun.com/centos/7/os/x86_64/ /data/centos/7/os/x86_64/ && createrepo /data/centos/7/os/x86_64/ && systemctl reload nginx
这样不会忘记同步,运维小白秒变运维大佬全靠这个秘密武器。
多注意的是,如果你想同步其他仓库,比如epel或者updates,同样操作,路径和配置都需要对应修改。千万别一锅乱炖,保持条理清晰,方便排查。
最后一点,想让内网中其他用户访问你搭建的yum源,要确保防火墙和安全组放通HTTP端口80,或者用你自己设定的端口。防止大家连不上你的宝藏“软件仓库”。
学问讲到这,咱们就玩玩脑筋急转弯:什么包你越装越开心?没错,“yum upgrade”包!等等,先别动手,先去看看你本地yum源是否准备好嘿。