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

  • 相关阅读:
    制作一个简单HTML公司官网网页设计(HTML+CSS)
    Java版B/S架构云his医院信息管理系统源码(springboot框架)
    AcWing 196. 质数距离
    知识库搭建最简单的方法:登录、创建、优化,就这三步!
    pytorch几种learning rate的使用方式
    We’re sorry but XXX doesn’t work properly without JavaScript enabled(解决方案汇总)
    2022牛客暑期多校第一场G、A、D
    制作一个简单HTML宠物猫网页(HTML+CSS)
    C++STL详解(三)list的使用及其模拟实现
    【云原生&Docker基础篇第4篇】实战探究Docker数据卷的奥秘
  • 原文地址:https://blog.csdn.net/m0_74860678/article/details/139662835