一 需求

企业内部服务器出于安全考虑,不允许访问外网,无法直接从外网的开源镜像中直接yum安装软件。
因此需要将yum源搭建在本地的一台服务器上,其他服务器通过内网访问该服务器,即可yum安装软件。

服务端IP:10.0.0.10
在本地安装centos7的镜像,作为其他服务器的yum镜像源。

客户端IP:10.0.0.11
通过修改/etc/yum.repos.d/Centos-Base.repo,将服务端设置为新的yum源。

二 搭建环境准备

服务端主机名:master
客户端主机名:node1

关闭两台服务器的防火墙:

systemctl stop fireewalld
systemctl disable fireewalld
systemctl status fireewalld

将SELINUX安全策略关闭:

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config 
setenforce 0
getenforce

三 服务端

1 创建镜像存放目录与挂载目录

首先创建一个镜像文件的存放目录

mkdir -p /yum

再创建一个挂载点

mkdir -p /mnt/cdrom

2 上传centos7镜像

将镜像文件上传至/yum目录下。

由于镜像文件很大,如果传输速度很慢,可以在 Windows 上安装 xftp 软件,然后打开创建会话。

在这里插入图片描述

具体的安装步骤此处不作详细讲解,但注意选择正确的协议和端口号,否则无法连接。

接着就可以直接拖动文件,在Linux和Windows间相互传输。

3 对镜像文件进行挂载

首先查看笔者上传的 centos7 的镜像文件。

[root@master ~]# ll /yum/
total 4389888
-rw-r--r-- 1 root root 4495245312 Dec  9 09:39 rhel-server-7.6-x86_64-dvd.iso

其次输入挂载命令。

[root@master ~]# mount -o loop /yum/rhel-server-7.6-x86_64-dvd.iso /mnt/cdrom
mount: /dev/loop0 is write-protected, mounting read-only

最后检查一下,挂载是否成功。

[root@master yum.repos.d]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   19G  8.7G  9.7G  48% /
devtmpfs               470M     0  470M   0% /dev
tmpfs                  487M     0  487M   0% /dev/shm
tmpfs                  487M  8.0M  479M   2% /run
tmpfs                  487M     0  487M   0% /sys/fs/cgroup
/dev/sda1              197M  143M   55M  73% /boot
tmpfs                   98M     0   98M   0% /run/user/0
/dev/loop0             4.2G  4.2G     0 100% /mnt/cdrom

4 配置本地yum源

首先备份原有的镜像文件。

[root@master ~]# cd /etc/yum.repos.d/
[root@master yum.repos.d]# ls
CentOS-Base.repo  epel.repo  redhat.repo
[root@master yum.repos.d]# mkdir bak
[root@master yum.repos.d]# mv *.repo bak/
[root@master yum.repos.d]# ll
total 0
drwxr-xr-x 2 root root 66 Dec  9 15:30 bak

然后配置本地的yum源。

[root@master yum.repos.d]# cat base.repo 
[base]
name=centos base
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1

此处的baseurl后面的内容是file://+挂载点的绝对路径
参数gpgcheck=0是在 yum 安装时不检查数字签名是否被纂改。
参数enabled=1是启用此 yum 配置。

5 对挂载点建立软链接

[root@master yum.repos.d]# mkdir -p /var/www/html/centos
[root@master yum.repos.d]# ln -s /mnt/cdrom/ /var/www/html/centos

6 安装http服务

yum install -y httpd
systemctl start httpd
systemctl enable httpd
systemctl status httpd

7 浏览器验证http服务是否正常启动

在本机浏览器的URL栏里输入自己的IP,查看是否启动了Apache服务。

在这里插入图片描述

然后以自己的IP/centos格式输入,能否打开镜像文件。

在这里插入图片描述

说明 http 服务正常运行。

另外,我们清理一下本地的缓存。

yum clean all
yum makecache

然后查看一下本地的yum源。

[root@master cdrom]# yum repolist
Loaded plugins: langpacks, product-id, search-disabled-repos
repo id                                                    repo name                                                      status
base                                                       centos base                                                    5,152
repolist: 5,152

四 客户端

1 修改yum配置文件

先备份相关的镜像文件。

[root@node1 yum.repos.d]# mkdir bak
[root@node1 yum.repos.d]# mv *.repo bak/
[root@node1 yum.repos.d]# ll
total 0
drwxr-xr-x 2 root root 66 Dec  9 15:52 bak

然后编写yum配置文件。

[root@node1 yum.repos.d]# cat base.repo 
[base]
name=base yum
baseurl=http://10.0.0.10/centos
gpgcheck=0
enabled=1

注意,此处的baseurl后面的IP是配置yum源的服务器IP,通过局域网,我们可以访问该页面。

2 查看yum源

首先清理缓存,再查看镜像配置文件。

yum clean all
yum makecache
yum repolist

通过执行命令,结果如下:

[root@node1 yum.repos.d]# yum repolist
Loaded plugins: langpacks, product-id, search-disabled-repos
repo id                                                     repo name                                                     status
base                                                        base yum                                                      5,152
repolist: 5,152

通过两个repolist: 5,152数字的比较,我们可以发现两台主机的yum源配置是相同的。

Logo

更多推荐