1. 目标要求
2. 安装 server 端
3. 配置 server 端
4. 配置当前系统 yum 来源 repo 文件
5. 进行同步脚本的创建并执行同步
1. 目标要求
yum 源服务器要自动更新自身源
使用 CentOS 官方标准源 version6 和 version7 的两个版本保持更新
客户端可以直接使用源
国内速度比较快的源服务器
- http://mirrors.aliyun.com/
- http://centos.ustc.edu.cn/centos/
- http://mirrors.163.com
2. 安装 server 端
关闭防火墙和 selinux
- [root@localhost ~]# vim /etc/hostname
- yumserver
- [root@localhost ~]# hostnamectl status
- Static hostname: yumserver
- Icon name: computer-vm
- Chassis: vm
- Machine ID: 06490d1675224b898ac71b9ed141cb39
- Boot ID: 2a568995acaa4bb2928bdb8e6330ddd3
- Virtualization: vmware
- Operating System: CentOS Linux 7 (Core)
- CPE OS Name: cpe:/o:centos:centos:7
- Kernel: Linux 3.10.0-327.el7.x86_64
- Architecture: x86-64
- [root@localhost ~]# su - root
- [root@yumserver ~]# systemctl stop firewalld.service
- [root@yumserver ~]# systemctl disable firewalld.service
- Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
- Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
- [root@yumserver ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
- [root@yumserver ~]# setenforce 0
安装 nginx 软件包
- [root@yumserver ~]# yum -y install epel-release
- [root@yumserver ~]# yum -y install nginx
- Installed:
- nginx.x86_64 1:1.12.2-1.el7
- Dependency Installed:
- GeoIP.x86_64 0:1.5.0-11.el7 fontconfig.x86_64 0:2.10.95-11.el7 fontpackages-filesystem.noarch 0:1.44-8.el7 gd.x86_64 0:2.0.35-26.el7
- gperftools-libs.x86_64 0:2.4-8.el7 libX11.x86_64 0:1.6.5-1.el7 libX11-common.noarch 0:1.6.5-1.el7 libXau.x86_64 0:1.0.8-2.1.el7
- libXpm.x86_64 0:3.5.12-1.el7 libjpeg-turbo.x86_64 0:1.2.90-5.el7 libpng.x86_64 2:1.5.13-7.el7_2 libunwind.x86_64 2:1.2-2.el7
- libxcb.x86_64 0:1.12-1.el7 libxslt.x86_64 0:1.1.28-5.el7 lyx-fonts.noarch 0:2.2.3-1.el7 nginx-all-modules.noarch 1:1.12.2-1.el7
- nginx-filesystem.noarch 1:1.12.2-1.el7 nginx-mod-http-geoip.x86_64 1:1.12.2-1.el7 nginx-mod-http-image-filter.x86_64 1:1.12.2-1.el7 nginx-mod-http-perl.x86_64 1:1.12.2-1.el7
- nginx-mod-http-xslt-filter.x86_64 1:1.12.2-1.el7 nginx-mod-mail.x86_64 1:1.12.2-1.el7 nginx-mod-stream.x86_64 1:1.12.2-1.el7
- Dependency Updated:
- openssl.x86_64 1:1.0.2k-8.el7 openssl-libs.x86_64 1:1.0.2k-8.el7
- Complete!
- [root@yumserver ~]# find / -name nginx.conf
- /etc/nginx/nginx.conf
- [root@yumserver ~]# vim /etc/nginx/nginx.conf
- autoindex on; # 表示自动在 index.html 的索引打开
- autoindex_exact_size on; # 表示如果有文件则显示文件大小;
- autoindex_localtime on; # 表示显示更改时间, 以点前系统的时间为准;
- error_page 404 /404.html;
安装 createrepo 软件包
安装建 yum 源仓库的工具, 可以用来建立 yum 仓库
- [root@yumserver ~]# yum -y install createrepo
- yum-utils
- Installed:
- createrepo.noarch 0:0.9.9-28.el7
- Dependency Installed:
- deltarpm.x86_64 0:3.6-3.el7 libxml2-python.x86_64 0:2.9.1-6.el7_2.3 python-deltarpm.x86_64 0:3.6-3.el7
- Dependency Updated:
- libxml2.x86_64 0:2.9.1-6.el7_2.3
- Complete!
安装 yum-plugin-priorities 软件包
安装控制 yum 源更新优先级工具, 这个工具可以用来控制进行 yum 源检索的先后顺序, 建议用在 client 端
- [root@yumserver ~]# yum -y install yum-plugin-priorities
- Installed:
- yum-plugin-priorities.noarch 0:1.1.31-42.el7
- Complete!
3. 配置 server 端
- [root@yumserver /]# find / -name html
- /usr/share/doc/pam-1.1.8/html
- /usr/share/nginx/html
- [root@yumserver ~]# mkdir -p /usr/share/nginx/html/CentOS-Yum/CentOS6/x86_64
- [root@yumserver ~]# mkdir -p /usr/share/nginx/html/CentOS-Yum/CentOS7/x86_64
- [root@yumserver ~]# chmod -R +x /usr/share/nginx/html
- [root@yumserver ~]# vim /usr/share/nginx/html/index.html
- </head>
- <body>
- <h1>Welcome to <strong>nginx</strong> on Fedora!</h1>
- <div class="content">
- <p>This page is used to test the proper operation of the
- <strong>nginx</strong> HTTP server after it has been
- installed. If you can read this page, it means that the
- web server installed at this site is working
- properly.</p>
- <div class="alert">
- <h2>Website Administrator</h2>
- <div class="content">
- <p style="font-weight:bolder;color:green;font-size:30px;">ALL of the packages in the below:</p>
- <br/>
- <a href="http://10.9.254.33/Zabbix-Yum/CentOS6">zabbix3.4-centos6</a><br/>
- These packagers from of Zabbix3.4-Centos6.<br/>
- <a href="http://10.9.254.33/Zabbix-Yum/CentOS7">zabbix3.4-centos7</a><br/>
- These packagers from of Zabbix3.4-Centos7.<br/>
- <a href="http://10.9.254.33/CentOS-Yum/CentOS6">centos6</a><br/>
- These packagers from of Centos6.<br/>
- <a href="http://10.9.254.33/CentOS-Yum/CentOS7">centos7</a><br/>
- These packagers from of Centos7.<br/>
- <p style="font-weight:bolder;color:red;font-size:18px;">Please replace the file and fill in the following content:</p>
- <p style="font-weight:bolder;color:blue;font-size:15px;">Way: /etc/yum.repos.d/CentOS-Base.repo</p>
- </div>
- </div>
- <div class="logos">
- <a href="http://nginx.net/"><img
- src="nginx-logo.png"
- alt="[ Powered by nginx ]"
- width="121" height="32" /></a>
- <a href="http://fedoraproject.org/"><img
- src="poweredby.png"
- alt="[ Powered by Fedora ]"
- width="88" height="31" /></a>
- </div>
- </div>
- </body>
- </html>
- [root@yumserver ~]# service nginx restart
4. 配置当前系统 yum 来源 repo 文件
备份现有 CentOS-Base.repo 文件
- [root@yumserver ~]# cp -p /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
- [root@yumserver ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- [root@yumserver ~]# ll /etc/yum.repos.d/CentOS-Base.repo
下载并查看 CentOS-Base.repo 文件
- [root@yumserver ~]# vim /etc/yum.repos.d/CentOS-Base.repo
- # CentOS-Base.repo
- #
- # The mirror system uses the connecting IP address of the client and the
- # update status of each mirror to pick mirrors that are updated to and
- # geographically close to the client. You should use this for CentOS updates
- # unless you are manually picking other mirrors.
- #
- # If the mirrorlist= does not work for you, as a fall back you can try the
- # remarked out baseurl= line instead.
- #
- #
- [base]
- name=CentOS-$releasever - Base - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
- http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
- #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
- gpgcheck=1
- gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
- #released updates
- [updates]
- name=CentOS-$releasever - Updates - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
- http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
- #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
- gpgcheck=1
- gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
- #additional packages that may be useful
- [extras]
- name=CentOS-$releasever - Extras - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
- http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
- #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
- gpgcheck=1
- gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
目前只能是 CentOS7 的版本的所有 yum 源, 如果需要同步 6 版本的 yum 源, 将 CentOS-Base.repo 文件内的 7 版本号更改为 6 就可以了将 $releasever 替换为 6, 将 $basearch 替换为 x86_64, 将版本 7 改为 6
:1,$s/$releasever/6/g
5. 进行同步脚本的创建并执行同步
- [root@yumserver ~]# reposync p /usr/share/nginx/html/CentOS-Yum/CentOS7/x86_64/
- [root@yumserver ~]# ls
- anaconda-ks.cfg base extras updates
- [root@yumserver ~]# mv base/ /usr/share/nginx/html/CentOS-Yum/CentOS7/x86_64/
- [root@yumserver ~]# mv extras/ /usr/share/nginx/html/CentOS-Yum/CentOS7/x86_64/
- [root@yumserver ~]# mv updates/ /usr/share/nginx/html/CentOS-Yum/CentOS7/x86_64/
- [root@yumserver ~]# cd /usr/share/nginx/html/CentOS-Yum/CentOS7/x86_64/
- [root@yumserver x86_64]# ls
- base extras updates
- [root@yumserver ~]# createrepo -p /usr/share/nginx/html/CentOS-Yum/CentOS7/x86_64/base/Packages/
- Spawning worker 0 with 4796 pkgs
- Spawning worker 1 with 4795 pkgs
- Workers Finished
- Saving Primary metadata
- Saving file lists metadata
- Saving other metadata
- Generating sqlite DBs
- Sqlite DBs complete
- [root@yumserver ~]# createrepo -p /usr/share/nginx/html/CentOS-Yum/CentOS7/x86_64/extras/Packages/
- Spawning worker 0 with 163 pkgs
- Spawning worker 1 with 163 pkgs
- Workers Finished
- Saving Primary metadata
- Saving file lists metadata
- Saving other metadata
- Generating sqlite DBs
- Sqlite DBs complete
- [root@yumserver ~]# createrepo -p /usr/share/nginx/html/CentOS-Yum/CentOS7/x86_64/updates/Packages/
- Spawning worker 0 with 770 pkgs
- Spawning worker 1 with 770 pkgs
- Workers Finished
- Saving Primary metadata
- Saving file lists metadata
- Saving other metadata
- Generating sqlite DBs
- Sqlite DBs complete
使用同样方法, 同步 centos6 软件包
- [root@yumserver yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- [root@yumserver yum.repos.d]# vim /etc/yum.repos.d/CentOS-Base.repo
- # CentOS-Base.repo
- #
- # The mirror system uses the connecting IP address of the client and the
- # update status of each mirror to pick mirrors that are updated to and
- # geographically close to the client. You should use this for CentOS updates
- # unless you are manually picking other mirrors.
- #
- # If the mirrorlist= does not work for you, as a fall back you can try the
- # remarked out baseurl= line instead.
- #
- #
- [base]
- name=CentOS-6 - Base - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos/6/os/x86_64/
- http://mirrors.aliyuncs.com/centos/6/os/x86_64/
- #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os
- gpgcheck=1
- gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
- #released updates
- [updates]
- name=CentOS-6 - Updates - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos/6/updates/x86_64/
- http://mirrors.aliyuncs.com/centos/6/updates/x86_64/
- #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=updates
- gpgcheck=1
- gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
- #additional packages that may be useful
- [extras]
- name=CentOS-6 - Extras - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos/6/extras/x86_64/
- http://mirrors.aliyuncs.com/centos/6/extras/x86_64/
- #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=extras
- gpgcheck=1
- gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
- #additional packages that extend functionality of existing packages
- [centosplus]
- name=CentOS-6 - Plus - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos/6/centosplus/x86_64/
- http://mirrors.aliyuncs.com/centos/6/centosplus/x86_64/
- #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=centosplus
- gpgcheck=1
- enabled=0
- gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
- #contrib - packages by Centos Users
- [contrib]
- name=CentOS-6 - Contrib - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos/6/contrib/x86_64/
- http://mirrors.aliyuncs.com/centos/6/contrib/x86_64/
- #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=contrib
- gpgcheck=1
- enabled=0
- gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
将 $releasever 替换为 6, 将 $basearch 替换为 x86_64, 将版本 7 改为 6
- :1,$s/$releasever/6/g
- [root@yumserver yum.repos.d]# yum clean all
- [root@yumserver yum.repos.d]# yum makecache
- [root@yumserver yum.repos.d]# yum repolist
- Loaded plugins: fastestmirror, priorities
- Loading mirror speeds from cached hostfile
- * base: mirrors.aliyun.com
- * extras: mirrors.aliyun.com
- * updates: mirrors.aliyun.com
- repo id repo name status
- base CentOS-6 - Base - mirrors.aliyun.com 6,706
- extras CentOS-6 - Extras - mirrors.aliyun.com 46
- updates CentOS-6 - Updates - mirrors.aliyun.com 834
- repolist: 7,586
- [root@yumserver yum.repos.d]# cd /usr/share/nginx/html/CentOS-Yum/CentOS6/x86_64/
- [root@yumserver x86_64]# reposync -p /usr/share/nginx/html/CentOS-Yum/CentOS6/x86_64/
- [root@yumserver x86_64]# ls
- base extras updates
- [root@yumserver ~]# createrepo -p /usr/share/nginx/html/CentOS-Yum/CentOS6/x86_64/base/Packages/
- Spawning worker 0 with 3457 pkgs
- Spawning worker 1 with 3457 pkgs
- Workers Finished
- Saving Primary metadata
- Saving file lists metadata
- Saving other metadata
- Generating sqlite DBs
- Sqlite DBs complete
- [root@yumserver ~]# createrepo -p /usr/share/nginx/html/CentOS-Yum/CentOS6/x86_64/extras/Packages/
- Spawning worker 0 with 23 pkgs
- Spawning worker 1 with 23 pkgs
- Workers Finished
- Saving Primary metadata
- Saving file lists metadata
- Saving other metadata
- Generating sqlite DBs
- Sqlite DBs complete
- [root@yumserver ~]# createrepo -p /usr/share/nginx/html/CentOS-Yum/CentOS6/x86_64/updates/Packages/
- Spawning worker 0 with 417 pkgs
- Spawning worker 1 with 417 pkgs
- Workers Finished
- Saving Primary metadata
- Saving file lists metadata
- Saving other metadata
- Generating sqlite DBs
- Sqlite DBs complete
来源: http://www.bubuko.com/infodetail-2518372.html