1. 程式人生 > >CentOS7下的YUM源服務器搭建

CentOS7下的YUM源服務器搭建

centos7 yum 源

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


CentOS7下的YUM源服務器搭建