部署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            记录曾经登录过的客户端信息

 

 

 

posted @   零六零一  阅读(75)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示