内网自建yum源仓库

- - - 外网也可以用、也可以定时更新同步 - - -

由于内网没有互联网络,没法使用网上的各种YUM源,来回拷贝rpm包安装麻烦,还得解决依赖问题。所以搭建个本地/局域网YUM源,方便自己跟同事安装软件。(我的系统为  centos 7.3)

一、根据实际情况,拿出一台服务器作为yum仓库。

1、关闭 防火墙、selinux防火墙

[root@129 ~]# yum -y install createrepo

(内网安装先在外网下载后,把createrepo包和依赖包拷贝到内网,< rpm -vi 包名称 > 完成安装)

2、准备测试用的 rpm 包(自己确定依赖包)、仓库目录。这里用tree演示

[root@129 ~]# mkdir -pv /yum/yum-custom/packages

[root@129 ~]# cp tree-1.6.0-10.e17.x86_64.rpm /yum/yum-custom/packages

3、创建及自定义 repo

[root@129 ~]# createrepo -pdo /yum/yum-custom/ /yum/yum-custom/        创建repo数据库

Spawning worker 0 with 1 pkgs

Spawning worker 1 with 0 pkgs

Workers Finished

Saving Primary metadata

Saving file lists metadata

Saving other metadata

Generating sqlite DBs

Sqlite DBs complete

[root@129 ~]# ll /yum/yum-custom

--total 4

  drwxr-xr-x. 2 root root  41 Dec 20 07:03 packages

  drwxr-xr-x. 2 root root 4096 Dec 20 07:08 repodata--

清空或者备份出 /etc/yum.repos.d 下所有的源。

[root@129 ~]# vim /etc/yum.repos.d/CentOS-Media.repo

添加如下内容:

[c7-media]

name=CentOS-$releasever - Media

baseurl=file:///yum/yum-custom/

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

4、制作cache

[root@129 ~]# yum clean all

Loaded plugins: fastestmirror

Cleaning repos: c7-media

Cleaning up everything

Cleaning up list of fastest mirrors

[root@129 ~]# yum makecache

Loaded plugins: fastestmirror

c7-media                                                  | 2.9 kB  00:00:00

(1/3): c7-media/primary_db                      | 1.8 kB  00:00:00

(2/3): c7-media/filelists_db                       |  880 B  00:00:00

(3/3): c7-media/other_db                          | 1.3 kB  00:00:00

Determining fastest mirrors

Metadata Cache Created

5、使用 repo

[root@129 ~]# yum -y install tree        下载成功,测试完成

6、下载、配置vsftpd,本机作为整个局域网的源仓库,供其他机器下载软件

[root@129 ~]# yum -y install vsftpd

(内网安装先在外网下载后,把vsftpd包拷贝到内网,< rpm -vi 包名称 > 完成安装)

[root@129 ~]# vim /etc/vsftpd/vsftpd.conf

添加如下内容:

anon_root=/yum/                    增加匿名用户root目录(默认已经启用匿名访问)

[root@129 ~]# ll -a /yum/        注意目录权限如下

total 0

drwxr-xr-x  3 root root  24 Oct 12 11:09 .

dr-xr-xr-x. 18 root root 255 Oct 12 11:09 ..

drwxr-xr-x  4 root root  38 Oct 12 11:38    yum-custom

7、启动 vsftp

[root@129 ~]# systemctl start vsftpd

[root@129 ~]# systemctl enable vsftpd

Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

二、内网其他服务器

1、清空或者备份出 /etc/yum.repos.d 下所有的源。

[root@135 ~]# vim /etc/yum.repos.d/CentOS-Media.repo

添加如下内容:

[c7-media]

name=CentOS-$releasever - Media

baseurl=ftp://192.168.0.129/yum-custom        # 192.168.0.129为上面vsftp服务器地址

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

2、启动内网的 repo

[root@135 ~]# yum clean all

Loaded plugins: fastestmirror

Cleaning repos: c7-media

Cleaning up everything

Cleaning up list of fastest mirrors

[root@135 ~]# yum makecache

Loaded plugins: fastestmirror

c7-media                                                | 2.9 kB  00:00:00

(1/3): c7-media/filelists_db                     |  880 B  00:00:00

(2/3): c7-media/other_db                        | 1.3 kB  00:00:00

(3/3): c7-media/primary_db                    | 1.8 kB  00:00:00

Determining fastest mirrors

Metadata Cache Created

3、使用内网源仓库

[root@135 ~]# yum -y install tree        下载成功,测试完成

三、从阿里服务器将rpm同步到本地

这一步是在外网操作,我用的阿里源,所以同步的是阿里所有的rpm包;也可以同步163或者其他源的(把自己机器上的源改为想同步的源就行)。

[root@kkk ~]# yum repolist        查看阿里的可用仓库,有启用的表示已经成功了

1、从阿里服务器将rpm同步到本地需要两个rpm软件:createrepo 和 yum-utils

[root@kkk ~]# yum -y install createrepo yum-utils

[root@kkk ~]# mkdir /yum                          创建rpm包存放目录

[root@kkk ~]# reposync -r base -p /yum    将已经配置好的阿里仓库镜像内的rpm包拉到本地,base为本地已经配置好的仓库名,可以用yum repolist查看到

四、同步完之后把所有的 rpm 包拷贝到内网源仓库目录

拷贝完之后,在内网源仓库那台服务器上执行

createrepo -pdo /yum/yum-custom/ /yum/yum-custom/            更新repo数据库

局域网自建源仓库  OK ~

五、如果是外网,配置下定时更新

[root@kkk ~]# vim /cron/repository.sh                编写同步脚本

reposync -r base -p /mirrors/Packege -d            # 来删除本地老旧

reposync -r base -p /mirrors/Packege

[root@kkk ~]# crontab -e                添加定时任务

添加:

0 0 1 * * sh /yum/repository.sh        # 每月1日0时更新yum仓库

你可能感兴趣的:(内网自建yum源仓库)