一、介绍:
该文档在“银河麒麟服务器操作系统V10”系统上同步外网yum源到本地,并部署本地yum源。
二、同步外网源到本地
1.确保机器能够正常连接互联网;
2.确保机器有足够的磁盘空间;
注:例如SP1 X86架构所占用的磁盘空间容量大概为13G,而其他版本其他架构的磁盘空间用量大小也不等。所以为了能够顺利同步,应预留足够多的磁盘空间!
3.安装本次需要用到的两个软件createrepo 和httpd
yum -y install createrepo httpd
4.同步外网源到本地
1) 进入yum.repos.d目录:
cd /etc/yum.repos.d/
2) 备份原repo文件:
mv kylin_x86_64.repo kylin_x86_64.repo.bak
3) 生成并编辑一个新文件(按实际需要添加或者删除仓库):
注:下面的配置包含了麒麟所有的服务器软件仓库地址,把需要同步的enabled字段设为1(启用状态)
vi kylin_all.repo
#########V10-SP1-X86#########
[ks10-adv-os-sp1x86]
name = Kylin Linux Advanced Server 10 - Os sp1x86
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP1/os/adv/lic/base/x86_64/
gpgcheck = 0
enabled = 1
#
[ks10-adv-updates-sp1x86]
name = Kylin Linux Advanced Server 10 - Updates sp1x86
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP1/os/adv/lic/updates/x86_64/
gpgcheck = 0
enabled = 1
#
#########V10-SP2-X86#########
[ks10-adv-os-sp2x86]
name = Kylin Linux Advanced Server 10 - Os sp2x86
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/
gpgcheck = 0
enabled = 1
#
[ks10-adv-updates-sp2x86]
name = Kylin Linux Advanced Server 10 - Updates sp2x86
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/x86_64/
gpgcheck = 0
enabled = 1
#
#########V10-SP3-X86#########
[ks10-adv-os-sp3x86]
name = Kylin Linux Advanced Server 10 - Os sp3x86
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/x86_64/
gpgcheck = 0
enabled = 1
#
[ks10-adv-updates-sp3x86]
name = Kylin Linux Advanced Server 10 - Updates sp3x86
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/updates/x86_64/
gpgcheck = 0
enabled = 1
#
#########V10-SP1-Arm64#########
[ks10-adv-os-sp1arm]
name = Kylin Linux Advanced Server 10 - Os sp1arm
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP1/os/adv/lic/base/aarch64/
gpgcheck = 0
enabled = 0
#
[ks10-adv-updates-sp1arm]
name = Kylin Linux Advanced Server 10 - Updates sp1arm
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP1/os/adv/lic/updates/aarch64/
gpgcheck = 0
enabled = 0
#
#########V10-SP2-Arm64#########
[ks10-adv-os-sp2arm]
name = Kylin Linux Advanced Server 10 - Os sp2arm
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/aarch64/
gpgcheck = 0
enabled = 0
#
[ks10-adv-updates-sp2arm]
name = Kylin Linux Advanced Server 10 - Updates sp2arm
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/aarch64/
gpgcheck = 0
enabled = 0
#
#########V10-SP3-Arm64#########
[ks10-adv-os-sp3arm]
name = Kylin Linux Advanced Server 10 - Os sp3arm
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/
gpgcheck = 0
enabled = 0
#
[ks10-adv-updates-sp3arm]
name = Kylin Linux Advanced Server 10 - Updates sp3arm
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/updates/aarch64/
gpgcheck = 0
enabled = 0
4) 重建yum 缓存:
yum clean all && yum makecache
5) 同步外网软件源到本地,存储位置可⾃定义,本次将存储在/var/www/html/packages/;
# 1) 创建目录
mkdir -p /var/www/html/packages/
# 2) 使⽤reposync命令,同步外⽹源仓库到本地,默认同步repo文件里enable为1的源。
reposync -n -p /var/www/html/packages/
# 3) 如果只想同步指定的源到本地,可以指定需要同步的repoid
reposync -n --repoid=ks10-adv-os-sp2x86 --repoid=ks10-adv-os-sp2arm -p /var/www/html/packages/
6) 使⽤createrepo命令创建本地索引⽂件
p=/var/www/html/packages ; for repo in ls ${p}; do createrepo ${p}/${repo} ; done
三、启动web服务
若本地yum仓库存储位置在http默认的/var/www/html/⽬录下,则直接启动httpd服务即可
systemctl start httpd
systemctl enable httpd
四、浏览器访问及本地测试
1.使⽤浏览器访问本地yum源, 使⽤下⾯的url进行访问测试
http://localhost/packages/
2.修改内网主机配置,将baseurl指向到yum源地址,以V10-SP2-x86_64为例,配置如下:
- 创建新的测试repo⽂件,ip地址和源路径根据实际修改
` vi /etc/yum.repos.d/server.repo`
[ks10-adv-os]
name=Kylin Linux Advanced Server 10 - OS
baseurl= http://192.168.x.x/packages/ks10-adv-os-sp2x86/
gpgcheck=0
enable=1
#
[ks10-adv-updates]
name = Kylin Linux Advanced Server 10 - Updates
baseurl = http://192.168.x.x/packages/ks10-adv-updates-sp2x86/
gpgcheck = 0
enabled = 1
- 清理yum元数据缓存,查看是否成功重建yum元数据
` yum clean all && yum makecache`
五、创建定时同步任务
1.创建同步任务脚本
- 注意修改对所需同步的repoid和yum源仓库存储位置
` vi /opt/update_repo.sh `
#!/bin/bash
reposync -n -p /var/www/html/packages/
p=/var/www/html/packages; for repo in ls ${p}; do createrepo ${p}/${repo}; done
- 给同步任务脚本添加可执行权限
`chmod +x /opt/update_repo.sh`
2.创建定时任务
每天晚上23点同步
` crontab -e`
0 23 * * * /opt/update_repo.sh




