本例环境:vmwareworkstation16 pro+CentOS7.9
mast节点:192.168.195.110 用于配置httpd并发布本地yum源
node节点:192.168.195.111 用于验证mast节点的yum源是否可用
思路:1.在mast节点挂载/上传镜像后配置本地yum源
2.利用本地yum源安装httpd服务并发布光盘/镜像内容到网站
3.在node节点服务器应用mast节点发布的网站资源作为镜像源
目录
1.挂载光盘搭建本地yum源服务
1.1.给服务器挂载操作系统对应的光盘/镜像文件
1.2.复制光盘文件到服务器
1.3.创建本地yum源配置文件
2.安装并启动httpd服务
3.修改httpd配置文件,更改网站静态资源位置(即网站默认位置)
3.1.修改httpd配置文件
3.2.禁用默认欢迎页面
3.3.httpd验证
3.4.创建局域网yum源配置文件
4.登录node节点服务器上验证局域网yum源
4.1.备份历史配置,下载lan.repo文件
4.2.刷新yum
4.4 yum可用性验证
注意:以下步骤在mast节点操作
1.挂载光盘搭建本地yum源服务
1.1.给服务器挂载操作系统对应的光盘/镜像文件
给虚拟机上的服务器挂载光盘,并激活(不能激活的直接重启并从界面上登录服务器,否则不会自动挂载,不知道是不是我这个版本的bug),然后执行lsblk查看块设备如下,可以看见sr0这个设备就是我们的光驱设备,并且光盘被自动挂载到了/run/media/root/CentOS 7 x86_64这个地方
[root@localhost /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part /data
sr0 11:0 1 9.5G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost /]#
注意:如果没办法挂载光盘,可以将iso镜像文件上传到服务器后执行以下命令手动挂载
mount -o loop iso文件的绝对路径 服务器目标路径(如果目录不存在需要提前手动创建)
1.2.复制光盘文件到服务器
由于后续会再本机搭建永久性yum源且考虑到光盘的长期存放问题,需将光盘内文件复制到服务器长久存储(避免后续每次需要塞光盘和挂载的步骤)
创建本地目录用于存放光盘内复制过来的文件,后续统一称呼为【本地存储目录】
[root@localhost /]# mkdir /data/CentOS_7.9/
进入光盘挂载目录并复制所有文件到【本地存储目录】
[root@localhost CentOS 7 x86_64]# cd /run/media/root/CentOS\ 7\ x86_64/
[root@localhost CentOS 7 x86_64]# cp -r ./* /data/CentOS_7.9/
1.3.创建本地yum源配置文件
进入/etc/yum.repo.d/目录,创建备份目录并备份已存在的yum配置文件
[root@localhost yum.repos.d]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv ./*.repo ./bak
[root@localhost yum.repos.d]#
创建本地yum配置文件local.repo并添加如下内容
[local]
name=CentOS-local
baseurl=file:///data/CentOS_7.9
enabled=1
gpgcheck=0
[local] //yum的ID 本地唯一,用于区分不同yum源
name=CentOS-local //描述信息
baseurl=file:///data/CentOS_7.9 //前面的file://是协议,后面的/data/CentOS_7.9 是资源目录
enabled=1 //1启用当前yum源,0禁用
gpgcheck=0 //1使用公钥验证rpm包的正确性,0不验证
清除缓存【yum clean all】,创建缓存【yum makecache】,查看可用资源【yum repolist】
[root@localhost yum.repos.d]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: local
Other repos take up 477 M of disk space (use --verbose for details)
[root@localhost yum.repos.d]# yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
local | 3.6 kB 00:00:00
(1/4): local/group_gz | 153 kB 00:00:00
(2/4): local/primary_db | 6.1 MB 00:00:00
(3/4): local/filelists_db | 7.2 MB 00:00:00
(4/4): local/other_db | 2.6 MB 00:00:00
元数据缓存已建立
[root@localhost yum.repos.d]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识 源名称 状态
local CentOS-local 10,072
repolist: 10,072
[root@localhost yum.repos.d]#
2.安装并启动httpd服务
启动httpd服务,
[root@localhost soft]# yum install httpd -y
[root@localhost soft]#
[root@localhost soft]# httpd -version
Server version: Apache/2.4.6 (CentOS)
Server built: Mar 24 2022 14:57:57
启动httpd服务并加入开机启动
[root@localhost soft]# systemctl enable --now httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
将http和https服务永久性加入防火墙,并刷新防火墙规则
[root@localhost soft]# firewall-cmd --permanent --add-service=http
success
[root@localhost soft]# firewall-cmd --permanent --add-service=https
success
[root@localhost soft]# firewall-cmd --reload
success
[root@localhost soft]#
外部浏览器访问服务器ip地址可以见见如下界面表示httpd安装及防火墙配置正常
3.修改httpd配置文件,更改网站静态资源位置(即网站默认位置)
3.1.修改httpd配置文件
进入【/etc/httpd/conf】目录,备份并编辑httpd.conf文件,修改119行和131行的位置为【本地存储目录】
115 # DocumentRoot: The directory out of which you will serve your
116 # documents. By default, all requests are taken from this directory, but
117 # symbolic links and aliases may be used to point to other locations.
118 #
119 DocumentRoot "/data/CentOS_7.9"
120
121 #
122 # Relax access to content within /var/www.
123 #
124 <Directory "/var/www">
125 AllowOverride None
126 # Allow open access:
127 Require all granted
128 </Directory>
129
130 # Further relax access to the default document root:
131 <Directory "/data/CentOS_7.9">
3.2.禁用默认欢迎页面
进入【/etc/httpd/conf.d】目录重命名或者删除welcome.conf文件,否则可能一直看看见的都是欢迎页面,然后重启httpd服务
[root@localhost conf.d]# cd /etc/httpd/conf.d
[root@localhost conf.d]# mv welcome.conf welcome.conf_bak
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]#
3.3.httpd验证
外部浏览器访问服务器ip(默认端口80)出现如下光盘目录结果页面表示配置正常,如果不正常请查看/data/CentOS_7.9目录文件权限和selinxu设置(如果对linux的selinux不是很熟悉,建议执行
setenforce 0
】临时禁用)
3.4.创建局域网yum源配置文件
进入【本地存储目录】创建lan.repo文件
[root@localhost yum.repos.d]# cd /data/CentOS_7.9
[root@localhost yum.repos.d]# touch lan.repo
写入如下内容
[lan_110]
name=CentOS-lan_110
baseurl=http://192.168.195.110
enabled=1
gpgcheck=0
[lan_110] //yum的ID,本地唯一,用于区分不同yum源
name=CentOS-lan_110 //描述信息
baseurl=http://192.168.195.110 //资源位置,ip地址记得换成自己服务器的ip
enabled=1 //1启用当前yum源,0禁用
gpgcheck=0 //1使用公钥验证rpm包的正确性,0不验证
注意:以下步骤在node节点操作
4.登录node节点服务器上验证局域网yum源
4.1.备份历史配置,下载lan.repo文件
登录局域网内的node节点服务器,进入/etc/yum.repo.d目录备份其他yum配置文件,并执行wget命令下载位于mast节点的lan.repo文件
[root@localhost yum.repos.d]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv ./*.repo ./bak
[root@localhost yum.repos.d]# wget http://192.168.195.110/lan.repo
--2023-01-12 10:41:28-- http://192.168.195.110/lan.repo
正在连接 192.168.195.110:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:82
正在保存至: “lan.repo”
100%[===============================================================>] 82 --.-K/s 用时 0s
2023-01-12 10:41:28 (25.1 MB/s) - 已保存 “lan.repo” [82/82])
[root@localhost yum.repos.d]#
4.2.刷新yum
清除缓存【yum clean all】,创建缓存【yum makecache】,查看可用资源【yum repolist】,可以看见可用资源10072个(不同的镜像,资源不同,不用纠结个数)
[root@localhost yum.repos.d]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: lan_110
Cleaning up list of fastest mirrors
Other repos take up 255 M of disk space (use --verbose for details)
[root@localhost yum.repos.d]# yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
lan_110 | 3.6 kB 00:00:00
(1/4): lan_110/group_gz | 153 kB 00:00:00
(2/4): lan_110/primary_db | 6.1 MB 00:00:00
(3/4): lan_110/other_db | 2.6 MB 00:00:00
(4/4): lan_110/filelists_db | 7.2 MB 00:00:00
元数据缓存已建立
[root@localhost yum.repos.d]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识 源名称 状态
lan_110 CentOS-lan_110 10,072
repolist: 10,072
[root@localhost yum.repos.d]#
4.4 yum可用性验证
使用yum命令安装telnet工具,如下表示当前局域网的yum源正常
[root@localhost yum.repos.d]# yum install telnet -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 telnet.x86_64.1.0.17-65.el7_8 将被 安装
--> 解决依赖关系完成
依赖关系解决
============================================================================================
Package 架构 版本 源 大小
============================================================================================
正在安装:
telnet x86_64 1:0.17-65.el7_8 lan_110 64 k
事务概要
============================================================================================
安装 1 软件包
总下载量:64 k
安装大小:113 k
Downloading packages:
telnet-0.17-65.el7_8.x86_64.rpm | 64 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : 1:telnet-0.17-65.el7_8.x86_64 1/1
验证中 : 1:telnet-0.17-65.el7_8.x86_64 1/1
已安装:
telnet.x86_64 1:0.17-65.el7_8
完毕!
[root@localhost yum.repos.d]#