本文旨在实现部署内网Yum服务器,使内网任何服务器,任何版本的操作系统都可以方便的进行包管理。
以下脚本没做太多验证,只提供一种可行性。
以下内容假设服务端IP地址:192.168.10.101
一、服务端配置
安装http服务
yum -y install httpd
systemctl enable httpd
systemctl start httpd
systemctl status httpd
上传操作系统包到统一目录
如下只是操作示例:
mkdir -p /iosrepo/rhel6.5
mkdir -p /iosrepo/centos7.7
# 挂载系统ios镜像到对应目录,或复制软件包到对应目录
3.软连接镜像目录到http目录
ln -s /iosrepo/rhel6.5 /var/www/html/rhel6.5
ln -s /iosrepo/rhel7.7 /var/www/html/centos7.7
编辑repo配置脚本
以下脚本中的系统版本不保证正确,请自行验证并调整脚本。
vi /var/www/html/yum.sh
#!/bin/bash
# auth mayi
# date 2023-03
# 客户端系统版本检查
release=`uname -r`
case $release in
'3.10.0-229.el7.x86_64') VERSION=centos7.1 ;;
'3.10.0-327.el7.x86_64') VERSION=centos7.2 ;;
'3.10.0-514.el7.x86_64') VERSION=centos7.3 ;;
'3.10.0-693.el7.x86_64') VERSION=centos7.4 ;;
'3.10.0-862.el7.x86_64') VERSION=centos7.5 ;;
'3.10.0-957.el7.x86_64') VERSION=centos7.6 ;;
'3.10.0-1062.el7.x86_64') VERSION=centos7.7 ;;
'3.10.0-1127.el7.x86_64') VERSION=centos7.8 ;;
'3.10.0-1160.el7.x86_64') VERSION=centos7.9 ;;
*) echo -e "\n\033[35;1mError-01: 尚未配置该系统Yum源,请联系管理员!!!\033[0m\n"
exit 1
;;
esac
# 验证与客户端匹配的Yum源,在服务是否已配置。
URL=http://192.168.10.101/$VERSION
if ! curl --output /dev/null --silent --head --fail "$URL"; then
echo -e "\n\033[35;1mError-02: 尚未配置该系统Yum源,请联系管理员!!!\033[0m\n"
exit 2
fi
find /etc/yum.repos.d/ -maxdepth 1 -name '*.repo' -exec mv {} {}.`date +%Y%m%d` \;
cat > /etc/yum.repos.d/mayi.repo <<eof
[mayi]
name=mayi
baseurl=$URL
gpgcheck=0
enabled=1
eof
yum -q clean all
yum makecache
二、客户端配置Yum
curl http://192.168.10.101/yum.sh|sh
# 如果有域名服务器,可配置 192.168.10.101 域名为 yum.mayi.com.cn
# curl http://yum.mayi.com.cn/yum.sh|sh