背景:
因内网环境无法从外网获取安装包,所以需要搭建内网YUM源同步阿里YUM源环境:
内网YUM源服务器:192.168.33.129
CentOS7:3.10.0-1160.el7.x86_64
yumsync版本:1.3.0
Python版本:2.7
nginx版本:1.20.1客服端(测试YUM源):192.168.33.128
CentOS7:3.10.0-1160.el7.x86_64
内网YUM源服务器配置
安装yumsync
1、获取yumsync安装包
# Github地址:https://github.com/cea-hpc/yumsync/tags
wget https://github.com/cea-hpc/yumsync/archive/refs/tags/v1.3.0.tar.gz
tar -zxvf yumsync-1.3.0.tar.gz
2、安装yumsync
# 安装yumsync所依赖的模块/包
pip install blessings PyYAML==5.4.1 pyliblzma
yum -y install createrepo dnf
# 安装yumsync
cd yumsync
python setup.py install
# 查看版本
yumsync -v
同步阿里YUM源镜像
以zabbix的yum源为例
1、创建存储yum源的目录
mkdir /data
2、创建需要同步的yum源列表,格式如下所示
vim /root/repos.yml
---
zabbix/zabbix/4.0/rhel/7/x86_64:
baseurl: 'https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/'
gpgkey: 'https://mirrors.aliyun.com/RPM-GPG-KEY-ZABBIX-A14FE591'
3、同步阿里yum源到本地
# -o:指定存储目录;
# -c:指定配置文件;
# 其他相关参数详见yumsync -h
# 命令执行之后会同步到/data,并在/data自动创建/public,用于暴露YUM源
yumsync -o /data/ -c /root/repos.yml
4、定时任务同步
# 编写同步脚本
vim /root/yumsync/yumsync.sh
yumsync -o /data/ -c /root/repos.yml
# 设置定时任务
crontab -e
10 * * * 6 sh /root/yumsync/yumsync.sh > /dev/null 2>&1
Nginx暴露YUM源
如果有其他需要自行设定,此处只设置暴露yum源的基础设置
1、安装nginx
yum -y install nginx
2、配置nginx暴露yum源
cd /etc/nginx
# 配置nginx
vim nginx.conf
http{
...
sendfile on; # 开启高效文件传输模式
server{
...
location / {
autoindex on; # 开启目录浏览模式
root /data/public;
index index.html index.htm;
}
...
}
...
}
# 重启nginx
systemctl restart nginx
3、在/data/public下创建index.hmtl(套用别人的,有需要自行修改)
vim /data/public/index.html(内容详见:)
mkdir /data/public/.media
vim /data/public/.media/mirror.css(内容详见:)
4、访问网页测试
客户端测试
1、备份原有yum源
mkdir /etc/yum.repo.d/backup
mv /etc/yum.repo.d/* /etc/yum.repo.d/backup
2、配置内网Yum源
如CentOS-Base等源需要key的话,gpgcheck=1,并将gpgkey=配置为内网YUM源的正确地址
vim /etc/yum.repo.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://192.168.33.129/zabbix/5.0/rhel/6/x86_64/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
3、更新yum缓存
yum clean all
yum makecache