部署YUM仓库及NFS共享服务


在Linux环境中,YUM仓库和NFS(Network File System)共享服务是两个非常重要的组件。YUM仓库允许你通过网络自动安装、更新和删除软件包,而NFS则允许你在网络中的不同机器之间共享文件和目录。下面我们将介绍如何配置和部署这两个服务。

一、YUM概述

  • YUM(Yellow dog Updater Modified)
    • 基于RPM包构建的软件更新机制
    • 可以自动解决依赖关系
    • 所有软件包由集中的YUM软件仓库提供

二、部署YUM软件仓库

  • 准备网络安装源(服务器端)
    • 软件仓库的提供方式
      • FTP服务:ftp://…
      • HTTP服务:http://…
      • 本地目录:file://…
    • RPM软件包的来源
      • CentOS发布的RPM包集合
      • 第三方组织发布的RPM包集合
      • 用户自定义的RPM包集合

三、使用 yum 工具管理软件包

查询软件包

yum list——查询软件包列表

  • 直接执行“yum list”命令可以获得系统中的软件安装情况,也可以查询软件仓库中可用的软件包列表,其中子命令 list 表示列表查看
# 列出yum仓库的所有软件包
[root@localhost ~]# yum list
# 列出系统中已安装的软件包
[root@localhost ~]# yum list installed
# 列出软件仓库中可用(尚未安装)的软件包
[root@localhost ~]# yum list available
# 列出可以升级版本的软件包
[root@localhost ~]# yum list updates

yum info——查询软件包的描述信息

  • 当需要查看某个软件包的描述信息时,可以执行“yum info 软件包名”,其中子命令 info 表示获取信息
# 查询某个软件包的描述信息 yum info
[root@bogon yum.repos.d]# yum info bash		# 查询 bash 包的描述信息

yum search——查询指定的软件包

  • 当需要根据某个关键词来查找相关的软件包时,可以执行“yum search 关键词”,默认仅根据软件包名称和描述信息进行搜索
  • 若执行“yum search all 关键词”,可以扩大搜索范围。
  • 例如,执行以下操作将搜索软件仓库并列出与“httpd”相关的软件包。
[root@localhost ~]# yum search all httpd 

yum whatprovides——查询命令属于哪个软件包

  • 在使用 Linux 操作系统过程中,经常遇到找不到某命令的现象。那这个命令需要安装什么软件包之后才会出现呢?yum whatprovides 就可以解决这个问题的,它可以查找某个命令属于哪个软件包。
# 查询某个命令属于哪个软件包
[root@bogon yum.repos.d]# yum whatprovides ifconfig            # 查询 ifconfig 属于哪个软件包
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.bupt.edu.cn
 * c7-media: 
 * extras: ftp.sjtu.edu.cn
 * updates: mirrors.jlu.edu.cn
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools            # 属于 net-tools 软件包
源    :@base
匹配来源:
文件名    :/usr/sbin/ifconfig
  • 注意:通过执行查询操作“yum grouplist”“yum groupinfo 分组名称”可以获得 YUM 仓库中的软件分组信息。例如,执行“yum groupinfo gnome-desktop”命令后将列出软件分组 gnome-desktop 所包括的软件包等信息
# 可以获得 YUM 仓库中的软件分组信息
# 列出所有组
[root@bogon yum.repos.d]# yum grouplist
# 查询指定组的信息
# 列出软件分组 gnome-desktop 所包括的软件包等信息
[root@bogon yum.repos.d]# yum groupinfo "gnome-desktop"
# 安装指定组
[root@bogon yum.repos.d]# yum groupinstall "gnome-desktop"

安装、升级、卸载软件包

  • 使用 yum 工具安装、升级软件包,分别通过子命令 install、update 来完成,操作对象为指定的软件包名(可以有多个)。
  • 执行操作时会自动检查并解决软件包之间的依赖关系, 期间会提示用户按 Y 键确认安装或升级操作,若希望自动确认,可以在 yum 命令后添加“-y” 选项
  • 例如,执行以下操作将从软件仓库下载并安装 net-tools 软件包,并自动解决其依赖关系
# 安装指定软件包
[root@bogon yum.repos.d]# yum -y install net-tools
# 更新,谨慎操作
[root@bogon yum.repos.d]# yum -y update
# 卸载 net-tools 软件包,并自动解决其依赖关系
[root@bogon yum.repos.d]# yum -y remove net-tools
  • 注意:使用yum 工具管理软件包时,结合子命令groupinstall、groupupdate、groupremove 可以针对软件分组进行安装、升级、卸载操作。
  • 例如,若执行“yum -y groupremove gnome-desktop”命令,则会删除整个 Desktop 分组所包含的软件包
# 删除整个 Desktop 分组所包含的软件包
[root@bogon yum.repos.d]# yum -y groupremove gnome-desktop

四、NFS共享存储服务

  • NFS 是一种基于 TCP/IP 传输的网络文件系统协议
  • 通过使用NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源
  • 对于大多数负载均衡群集来说,使用 NFS 协议来共享数据存储是比较常见的做法,NFS 也是 NAS 存储设备必然支持的一种协议
    NFS(Network File System)网络文件系统
    • 依赖于RPC(远端过程调用)
    • 需安装nfs-utils、rpcbind软件包来提供 NFS 共享服务
    • 权限选项中的 rw 表示允许读写(ro 为只读),sync 表示同步写入,no_root_squash 表示当客户机以 root 身份访问时赋予本地 root 权限(默认是root_squash,将作为 nfsnobody 用户降权对待)

使用 NFS 发布共享资源

  • NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。
  • 在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持

安装 nfs-utils、rpcbind 软件包

# 安装 nfs-utils rpcbind
[root@bogon ~]# yum -y install nfs-utils rpcbind

设置共享目录

  • NFS 的配置文件为/etc/exports,文件内容默认为空(无任何共享)
  • 在 exports 文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)”
  • 其中客户机地址可以是主机名、IP 地址、网段地址,允许使用*、?通配符;
  • 权限选项中的 rw 表示允许读写(ro 为只读),sync 表示同步写入,no_root_squash 表示当客户机以 root 身份访问时赋予本地 root 权限(默认是 root_squash,将作为 nfsnobody 用户降权对待)
# 使用 vi 打开 /etc/exports
[root@bogon ~]# vi /etc/exports
[root@bogon ~]# cat /etc/exports
/opt 192.168.72.0/24(rw,sync,no_root_squash)
  • 当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格分隔指定多个“客户机(权限选项)”即可
  • 例如,以下操作将/var/ftp/public 目录共享给两个客户机, 并分别给予只读、读写权限
[root@localhost ~]# vi /etc/exports
/var/ftp/pub    192.168.4.11(ro) 192.168.4.110(rw)

启动 NFS 服务程序

# 启动 nfs rpcbind
[root@bogon ~]# systemctl start nfs rpcbind
# 设置开机自启动 nfs rpcbind
[root@bogon ~]# systemctl enable nfs rpcbind
查看本机发布的 NFS 共享目录
# 查看本机发布的 NFS 共享目录
[root@bogon ~]# showmount -e 192.168.72.151
Export list for 192.168.72.151:
/opt 192.168.72.0/24

在客户机中访问 NFS 共享资源

  • NFS 协议的目标是提供一种网络文件系统,因此对 NFS 共享的访问也使用 mount 命令来进行挂载,对应的文件系统类型为 nfs。
  • 既可以手动挂载,也可以加入 fstab 配置文件来实现开机自动挂载

安装并启动 rpcbind

# 安装 nfs-utils rpcbind
[root@bogon ~]# yum -y install nfs-utils rpcbind
# 启动 nfs rpcbind
[root@bogon ~]# systemctl start nfs rpcbind
# 设置开机自启动 nfs rpcbind
[root@bogon ~]# systemctl enable nfs rpcbind
# 查看本机发布的 NFS 共享目录
[root@bogon ~]# showmount -e 192.168.72.151
Export list for 192.168.72.151:
/opt 192.168.72.0/24

手动挂载 NFS 共享目录

# 创建目录
[root@bogon ~]# mkdir /kgc
# 挂载
[root@bogon ~]# mount 192.168.72.151:/opt/ /kgc/
# 确认挂载结果
[root@bogon ~]# tail -1 /etc/mtab        
[root@bogon ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   12M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        50G  1.6G   49G    4% /
/dev/mapper/centos-home xfs        26G   33M   26G    1% /home
/dev/sda1               xfs      1014M  153M  862M   15% /boot
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
192.168.72.151:/opt     nfs4       50G   11G   40G   22% /kgc

fstab 自动挂载设置

# 永久挂载
[root@bogon ~]# vi /etc/fstab
[root@bogon ~]# cat /etc/fstab
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=69aefc4e-e6dd-478c-84f1-7c8930e6813f /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
192.168.72.151:/opt /kgc nfs defaults,_netdev        0 0

强制卸载 NFS

  • NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停掉了,那么在客户端就会出现执行 df -h 命令卡死的现象。
  • 这个时候使用umount 命令是无法直接卸载的,需要加上 -lf 才能卸载
  • 当出现卡死现象时,要重新开一个终端,执行 cat /etc/rc.local 命令,查看挂载点。
  • 然后使用 umount 命令卸载,其中-l 表示解除正在繁忙的文件系统,-f 表示强制
[root@localhost ~]# umount /mnt 
umount. nfs: /mnt : device is busy 
[root@localhost ~]# umount -lf /mnt

三、总结

通过部署YUM仓库和NFS共享服务,你可以轻松地在网络中自动安装软件包和共享文件。这些服务在大型企业环境和数据中心中尤其有用,因为它们可以简化软件管理和数据共享的过程。记得根据你的具体需求和环境来调整上述配置

  • 33
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值