欢迎光临
我们一直在努力

Linux DNF 仓库部署与 NFS 共享服务配置

Linux DNF 仓库部署与 NFS 共享服务配置

1. DNF仓库

DNF(Dandified YUM)是YUM的升级版本,用于RPM包的安装、更新、卸载及依赖管理。DNF仓库是存放RPM软件包及元数据(repodata目录,记录包信息与依赖关系)的存储位置,分为本地仓库(本地磁盘、NFS共享)和网络仓库(官方源、第三方源),本文聚焦本地仓库搭建与共享。

2. NFS共享服务

NFS(Network File System)是Linux/Unix系统间的网络文件共享协议,可将服务端本地目录通过网络共享给客户端,客户端可将该目录挂载为本地路径使用,实现文件跨主机复用,本文用于共享已搭建的DNF仓库。

核心说明

  • 部署架构:单服务端(搭建仓库 + 提供 NFS 共享)+ 多客户端(挂载 NFS 目录 + 使用共享仓库);
  • 前置要求:服务端配置固定 IP,与所有客户端同网段且网络互通;
  • 核心目录:服务端 DNF 仓库根目录/data/dnf-repo,客户端 NFS 挂载目录/mnt/nfs-dnf。
  • 一、服务端操作(核心:搭建 DNF 仓库 + 配置 NFS 共享)

    1. 环境基础准备

    bash

    运行

    # 安装必备工具:createrepo(仓库元数据)、nfs-utils/rpcbind(NFS服务)
    dnf install -y createrepo nfs-utils rpcbind
    # 关闭防火墙/SELinux(测试环境);生产环境见文末优化
    systemctl stop firewalld && systemctl disable firewalld
    setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

    2. 搭建本地 DNF 仓库(ISO 镜像版,高效离线)

    bash

    运行

    # 1. 创建目录:ISO挂载目录+仓库根目录
    mkdir -p /mnt/iso /data/dnf-repo
    # 2. 挂载系统ISO镜像(替换为实际ISO文件路径)
    mount -o loop /root/CentOS-8-x86_64-dvd.iso /mnt/iso
    # 3. 复制ISO内所有包及元数据到仓库目录(避免ISO卸载失效)
    cp -r /mnt/iso/* /data/dnf-repo/
    # 4. 生成/更新仓库元数据(ISO自带可跳过,自定义包必须执行)
    createrepo /data/dnf-repo/

    3. 配置并启动 NFS 共享服务

    bash

    运行

    # 1. 配置NFS共享规则:共享仓库目录,允许指定网段访问(替换为实际局域网网段)
    echo "/data/dnf-repo 192.168.1.0/24(rw,sync,no_root_squash)" > /etc/exports
    # 2. 启动服务并设置开机自启(rpcbind为NFS依赖,需先启动)
    systemctl start rpcbind nfs-server && systemctl enable rpcbind nfs-server
    # 3. 重载NFS配置,使共享规则立即生效
    exportfs -rv
    # 4. 验证共享:输出仓库目录即配置成功
    showmount -e localhost

    二、客户端操作(核心:挂载 NFS 目录 + 配置 DNF 源)

    1. 安装 NFS 客户端工具

    bash

    运行

    # 安装客户端工具,仅需启动rpcbind(无需启动nfs-server)
    dnf install -y nfs-utils rpcbind
    systemctl start rpcbind && systemctl enable rpcbind
    # 关闭防火墙/SELinux(测试环境)
    systemctl stop firewalld && systemctl disable firewalld
    setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

    2. 挂载服务端 NFS 共享目录

    bash

    运行

    # 1. 创建本地挂载目录
    mkdir -p /mnt/nfs-dnf
    # 2. 临时挂载(替换为服务端实际固定IP)
    mount -t nfs 192.168.1.100:/data/dnf-repo /mnt/nfs-dnf
    # 3. 永久挂载(写入fstab,重启自动生效)
    echo "192.168.1.100:/data/dnf-repo /mnt/nfs-dnf nfs defaults 0 0" >> /etc/fstab
    # 4. 验证挂载:显示挂载信息即成功
    df -h /mnt/nfs-dnf

    3. 配置 DNF 源指向 NFS 挂载目录

    bash

    运行

    # 1. 备份原有官方源,避免冲突
    mkdir -p /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
    # 2. 新建DNF源配置文件,指向NFS挂载目录
    cat > /etc/yum.repos.d/nfs-dnf.repo << EOF
    [nfs-dnf]
    name=NFS Shared DNF Repo
    baseurl=file:///mnt/nfs-dnf
    enabled=1
    gpgcheck=0
    EOF
    # 3. 清理原有缓存,生成新缓存使配置生效
    dnf clean all && dnf makecache
    # 4. 验证仓库:显示仓库信息即可用
    dnf repolist

    三、生产环境关键优化(必配)

    测试环境可直接关闭防火墙 / SELinux,生产环境需保留并做如下配置,仅在服务端执行:

    bash

    运行

    # 1. 防火墙放行NFS相关服务,永久生效
    firewall-cmd –add-service={nfs,rpc-bind,mountd} –permanent && firewall-cmd –reload
    # 2. SELinux授权,允许NFS共享及仓库访问
    setsebool -P nfs_export_all_rw 1
    chcon -Rt public_content_t /data/dnf-repo/
    # 3. NFS共享改为只读,防止客户端篡改仓库文件
    sed -i 's/rw/ro/' /etc/exports && exportfs -rv

    四、快速验证与排错

    服务端验证

    bash

    运行

    showmount -e localhost # 验证NFS共享是否生效
    dnf repolist # 验证自身DNF仓库是否可用
    systemctl status nfs-server # 查看NFS服务状态

    客户端验证

    bash

    运行

    showmount -e 服务端IP # 验证能否访问服务端NFS共享
    df -h /mnt/nfs-dnf # 验证NFS挂载状态
    dnf repolist # 验证DNF仓库是否启用
    dnf install -y net-tools # 安装测试包,验证仓库可用性
    mount -a # 测试fstab永久挂载配置是否正确

    五、核心总结

  • 服务端核心流程:装工具→建 DNF 仓库→配 NFS 共享→启服务;
  • 客户端核心流程:装客户端工具→挂 NFS 目录→配 DNF 源→刷缓存;
  • 所有配置修改后,DNF 需执行dnf clean all && dnf makecache,NFS 需执行exportfs -rv;
  • 生产环境重点做好防火墙放行、SELinux 授权、NFS 只读共享,提升安全性
  • 赞(0)
    未经允许不得转载:171主机测评 » Linux DNF 仓库部署与 NFS 共享服务配置
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址