部署YUM仓库及NFS共享服务
一.YUM仓库服务
部署YUM软件仓库
使用YUM工具管理软件包
二.NFS共享存储服务
使用NFS发布共享资源
在客户端访问NFS共享
一. YUM概述
YUM (Yellow dog Updater Modified)
基于RPM包构建的软件更新机制
可以自动解决依赖关系
所有软件包由集中的YUM软件仓库提供
准备安装源
1.软件仓库的提供方式
FTP服务:ftp://.....
HTTP服务:http://......
本地目录:file://......
2.RPM软件包的来源
CentOS发布的RPM包集合
第三方组织发布的RPM包集合
用户自定义的RPM包集合
3.构建centos7软件仓库
RPM包来自centos7DVD光盘
通过FTP方式提供给客户机
YUM源的提供方式
1.配置本地源仓库
cd /etc/yum.repos.d/
vim local.repo
[local] 仓库类别
name=local 仓库名称
baseurl=file:///mnt 指定URL 访问路径为光盘挂载目录
enabled=1 开启此yum源,此为默认项,可省略
gpgcheck=0 不验证软件包的签名
mount /dev/sr0 /mnt 把光盘挂载到/mnt目录下(前提虚拟机是光盘挂载)
清理yum缓存并更新
yum clean all && yum makecache
检查:yum repolist
2. 配置ftp源
主要是思路
服务器配置:
1)安装vsftpd服务端软件
2)创建并制作yum远程ftp站点的源
3)启动ftp服务
rpm -qa|grep vsftpd
yum -y install vsftpd
mkdir /var/ftp/centos7 创建挂盘挂载目录
mount /dev/sr0 /mnt 镜像挂载
cp -rf /mnt/* /var/ftp/centos7/ &
mkdir /var/ftp/other 创建目录repodata 数据文件
cd /var/ftp/other/
createrepo -g /mnt/repodata/repomd.xml ./ 工具建立仓库数据文件
systemctl start vsftpd
客户端配置:
1)创建远程yum源的配置文件
2)yum安装软件验证结果
客户端配置:
vi /etc/yum.repos.d/centos7.repo
[root@kgc14 yum.repos.d]# cat centos7.repo
[centos7] 仓库类别
name=centos7 仓库名称(说明)
baseurl=ftp://192.168.10.17/centos7 URL 访问路径
enabled=1 启用此软件仓库
gpgcheck=1 验证软件包的签名
gpgkey=ftp://192.168.10.17/centos/RPM-GPG-KEY-CentOS-7 GPG 公钥文件的位置
[other]
name=centos7
baseurl=ftp://192.168.10.17/other
enabled=1 启用此软件仓库
gpgcheck=0 验证软件包的签名
二.NFS(网络文件服务)
NES是一种基于TCP/IP传输的网络文件系统协议,最初由Sun公司开发。通过使用 NFS协议,客户机可以像访问本地目录一样访问远程服务器中的享资源
NFS也是NAS存储设备必然支持的一种协议NAS存储:
NFS服务的实现依赖于 RPC(Remote Process Ca11,远端过程调用)机制,以完成远程到本地的映射过程。在Centos7系中,需要安裝nfs-utils、rpcbind软件包来提供NFS共享服务 ,前者用于NFS共享发布和访问,后者用于RPC支持。
手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs。
nfs端口号2049
RPC端口号111
1.特点:
采用TCP/IP传输网络文件
安全性低
简单易操作
适合局域网环境
2.实验步骤:
安装nfs和rpcbind软件
修改配置文件设置共享
创建共享目录
开启服务
客户端验证共享目录可访问
rpm -q rpcbind nfs-utils
yum install -y nfs-utils rpcbind
vim /etc/exports NFS的配置文件为/etc/exports,文件内容默认为空(无任何共享)
/opt/web 192.168.10.0/24 (rw, sync, no_ root_ squash)
常用选项:
rw 表示允许读写
ro 表示为只读
sync 表示同步写入到内存与硬盘中
no_root_squash:表示当客户机以root身份访问时赋予本地root权限 (默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfs nobody的权限
root_squash:表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户
其它常用选项:
all_squash:所有访问用户都映射为匿名用户或用户组
async :将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据
subtree_check(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no_subtree_check:即使输出目录是一个子录,nfs服务器也不检查其父目录的权限,这样可以提高效率
systemctl start rpcbind
需要先启动rpc服务,因为nfs要向rpc注册端口
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
[root@localhost web] netstat -anpu | grep rpc
udp 0 0 0.0.0.0:111 0.0.0.0:* 24525/rpcbind
[root@localhost web] rpcinfo -p localhost
查看nfs向rpc注册的端口信息
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 55627 status
[root@localhost web] exportfs -v 验证结果
/web
192.168.245.0/24 (sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure, no_root_squash,no_all_squash)
exportfs -r 刷新结界
[root@localhost web] showmount -e localhost 验证共享
Export list for localhost:/web 192.168.245.0/24
切换到客户端:
[root@localhost ~] yum install -y nfs-utils rpcbind
[root@localhost ~] showmount -e 192.168.10.17 客户端验证共享
Export list for 192.168.245.100:/web 192.168.245.0/24
[root@localhost ~] yum -y install httpd
[root@localhost ~] mount -t nfs 192.168.10.17: /web /var/www/html/
将共享目录挂载到网页目录
[root@localhost ~] systemctl start httpd 启动web服务
[root@localhost ~] curl 127.0.0.1 成功访问主页内容
hello world!
[root@localhost~] echo "this is kgc " >> /var/www/html/index.html/客户端修改主页文件
[root@localhost web] cat index.html 服务器端会同步
this is kgc
nihao
同理可得,服务端写入或修改内容,客户端也会同步
df -h 查看挂载情况
修改/etc/fstab实现自动挂载:
192.168.10.17: /opt/web /var/www /html nfs defaults, netdev 0 0
defaults,_netdev说明这是一个网络设备
注意:NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端NFS服务突然间停掉了,那么客户端就会出现执行df -h命令卡死的现象。这个时候使用umount命令是无法直接卸载的,需要加上 -lf才能卸载
-l表示解除正在繁忙的文件系统,-f表示强制。
[root@localhost web] systemctl stop nfs 服务器端模拟nfs挂掉
[root@localhost ~] umount /var/www/html 客户端卸载时会卡住
[root@localhost ~] umount -lf /var/www/html/ 加1f参数成功卸载
其他nfs文件:
/var/lib/nfs/etab 记录NFS分享出来的目录的完整权限设定值
/var/lib/nfs/xtab 记录曾经登录过的客户端信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了