概述
由於內網有大量機器不能訪問公網,安裝軟件比較費勁,那么,如何讓這些機器也能yum快速安裝最新的軟件呢?搭建一個本地鏡像源能解決這樣的問題,而如何讓本地鏡像源倉庫的軟件保持最新,就需要一個神器--reposync。
reposync用於將遠端鏡像源同步到本地。
語法說明
/usr/bin/reposync [options]
參數說明
參數 | 說明 |
---|---|
-c | 要使用的配置文件(默認為/etc/yum.conf) |
-d | 刪除存儲庫中不再存在的本地包 |
-r REPOID, --repoid=REPOID | 指定repo id來查詢,可以指定多個次(默認全部啟用) |
-p DESTDIR, --download_path=DESTDIR | 下載包的路徑:默認為當前目錄 |
-g | 刪除未通過GPG簽名檢查的軟件包 |
-u | 只列出要下載的URL,不要下載 |
-n | 僅下載per-repo的最新軟件包 |
-l | 啟用yum插件支持 |
部署
- 系統:CentOS Linux release 7.9.2009 (Core)
- 主機IP:192.168.70.84
配置阿里雲源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/CentOS-Epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Epel.repo
yum makecache
同步源
創建文件夾並同步
mkdir -p /data/centos/7/64bit
/usr/bin/reposync -np /data/centos/7/64bit/
建倉
createrepo -p /data/centos/7/64bit/base/
createrepo -p /data/centos/7/64bit/epel/
createrepo -p /data/centos/7/64bit/updates/
createrepo -p /data/centos/7/64bit/extras/
Nginx配置
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/repo.access.log main;
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
location / {
root /data;
index index.html index.htm;
}
}
重啟Nginx:
systemctl reload nginx
打開http://192.168.70.84即可看到鏡像倉庫中的軟件。
配置定時計划
0 1 * * * /usr/bin/reposync -np /data/centos/7/64bit/
yum配置
/etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-Base(GDS)
baseurl=http://192.168.70.84/centos/7/64bit/base
path=/
enabled=1
gpgcheck=0
[updates]
name=CentOS-Updates(GDS)
baseurl=http://192.168.70.84/centos/7/64bit/updates
path=/
enabled=1
gpgcheck=0
[extras]
name=CentOS-Extras(GDS)
baseurl=http://192.168.70.84/centos/7/64bit/extras
path=/
enabled=1
更新緩存
# 導入gpg公鑰
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# 更新緩存
yum makecache