部署DNF仓库及NFS共享服务(笔记)

部署DNF仓库

部署DNF仓库的步骤与详解

1. 安装必要工具
  • 作用‌:安装用于创建仓库和管理RPM包的依赖工具。
  • 命令‌:
    sudo dnf install -y createrepo_c httpd 
  • 说明‌:
    • createrepo_c:生成仓库元数据(如repodata目录)。
    • httpd:提供Web服务以共享仓库。

2. 创建仓库目录
  • 作用‌:存放RPM包及元数据。
  • 命令‌:
    sudo mkdir -p /var/www/html/dnf-repo 
  • 说明‌:
    • 默认使用Apache根目录(/var/www/html)便于通过HTTP访问。
    • 目录名可自定义(如myrepo)。

3. 添加RPM包
  • 作用‌:将需要共享的RPM包复制到仓库目录。
  • 命令‌:
    sudo cp /path/to/rpms/*.rpm /var/www/html/dnf-repo/ 
  • 说明‌:
    • 可通过手动复制或脚本同步RPM包。
    • 若需镜像官方仓库,可使用rsyncreposync同步。

4. 生成仓库元数据
  • 作用‌:创建DNF可识别的仓库索引。
  • 命令‌:
    sudo createrepo_c /var/www/html/dnf-repo 
  • 说明‌:
    • 每次新增/删除RPM包后需重新运行此命令。
    • 使用--update参数可增量更新元数据:
      sudo createrepo_c --update /var/www/html/dnf-repo 

5. 配置Web服务器
  • 作用‌:允许客户端通过HTTP访问仓库。
  • 命令‌:
    sudo systemctl enable --now httpd 
    sudo firewall-cmd --permanent --add-service=http 
    sudo firewall-cmd --reload 
  • 说明‌:
    • 确保SELinux放行访问(如需):
      sudo setsebool -P httpd_read_user_content 1 

6. 配置客户端
  • 作用‌:在客户端系统中添加仓库配置。
  • 创建配置文件‌:
    sudo vi /etc/yum.repos.d/myrepo.repo 
  • 内容示例‌:
    [myrepo] 
    name=My Custom DNF Repo 
    baseurl=http://<server-ip>/dnf-repo 
    enabled=1 
    gpgcheck=0 

7. 测试仓库
  • 作用‌:验证客户端是否能访问仓库。
  • 命令‌:
    sudo dnf clean all sudo dnf repolist sudo dnf install <package-from-repo> 

8. 自动同步(可选)
  • 作用‌:定期同步外部仓库(如CentOS官方源)。
  • 示例脚本‌:
    #!/bin/bash 
    rsync -avz --delete rsync://mirror.example.com/centos/8/AppStream/x86_64/os/ /var/www/html/dnf-repo/ 
    createrepo_c --update /var/www/html/dnf-repo 
  • 说明‌:可通过cron设置定时任务。

总结表格

步骤详细说明示例命令/操作注意事项
1. 安装工具安装createrepo_c和Web服务器(如Apache)。sudo dnf install createrepo_c httpd确保防火墙放行HTTP端口。
2. 创建仓库目录在Web目录下创建存放RPM包的目录。sudo mkdir -p /var/www/html/dnf-repo目录需对Apache用户可读。
3. 添加RPM包将RPM包复制到仓库目录。sudo cp *.rpm /var/www/html/dnf-repo/支持手动或脚本同步。
4. 生成元数据使用createrepo_c生成仓库索引。sudo createrepo_c /var/www/html/dnf-repo更新包后需重新生成元数据。
5. 配置Web服务器启动Apache并开放防火墙。sudo systemctl enable --now httpd检查SELinux策略是否允许访问。
6. 配置客户端创建.repo文件指向仓库URL。baseurl=http://<server-ip>/dnf-repo禁用gpgcheck仅限测试环境。
7. 测试仓库清理缓存并验证仓库可用性。dnf clean all && dnf repolist测试安装包是否正常。
8. 自动同步(可选)使用rsyncreposync同步外部仓库,并设置定时任务。rsync -avz --delete rsync://mirror.example.com/... /dnf-repo/避免频繁同步,防止网络拥堵。

NFS共享服务

1. 服务器端安装NFS工具
  • 作用‌:安装NFS服务端组件。
  • 命令‌:
    sudo dnf install -y nfs-utils # CentOS/RHEL/Fedora 
    sudo apt install -y nfs-kernel-server # Ubuntu/Debian 
  • 说明‌:
    • nfs-utils 包含NFS服务端和客户端工具。
    • 安装完成后启动并启用服务:
      sudo systemctl enable --now nfs-server # CentOS/RHEL 
      sudo systemctl enable --now nfs-kernel-server # Ubuntu/Debian 

2. 创建共享目录
  • 作用‌:定义需要共享的目录。
  • 命令‌:
    sudo mkdir -p /shared_data 
    sudo chown nobody:nobody /shared_data # 可选:设置匿名用户权限 
    sudo chmod 777 /shared_data # 按需调整权限 
  • 说明‌:
    • 目录权限需根据实际需求配置(例如开发环境可放宽权限)。

3. 配置NFS共享规则
  • 作用‌:定义允许访问的客户端及权限。
  • 编辑配置文件‌:
    sudo vi /etc/exports 
  • 添加规则‌(示例):
    /shared_data 192.168.1.0/24(rw,sync,no_subtree_check) # 允许192.168.1.0网段读写 
    # 或指定单个客户端 
    /shared_data 192.168.1.100(rw,sync,no_root_squash) 
    • 参数说明‌:
      • rw:读写权限(ro为只读)。
      • sync:同步写入磁盘(数据安全性高)。
      • no_subtree_check:禁用子目录检查,提升性能。
      • no_root_squash:允许客户端root用户保留权限(谨慎使用)。

4. 应用NFS共享配置
  • 作用‌:使配置文件生效。
  • 命令‌:
    sudo exportfs -arv # 重新加载/etc/exports 
  • 说明‌:
    • -a:应用所有规则。
    • -r:重新导出共享。
    • -v:显示详细信息。

5. 配置防火墙
  • 作用‌:开放NFS相关端口。
  • 命令‌(以firewalld为例):
    sudo firewall-cmd --permanent --add-service=nfs 
    sudo firewall-cmd --permanent --add-service=mountd 
    sudo firewall-cmd --permanent --add-service=rpc-bind 
    sudo firewall-cmd --reload 
  • 说明‌:
    • NFS依赖2049/tcp(nfs)、20048/tcp(mountd)、111/tcp(rpc-bind)等端口。

6. 客户端挂载NFS共享
  • 作用‌:在客户端访问共享目录。
  • 安装客户端工具‌:
    sudo dnf install -y nfs-utils # CentOS/RHEL 
    sudo apt install -y nfs-common # Ubuntu/Debian 
  • 创建本地挂载点‌:
    sudo mkdir -p /mnt/nfs_shared 
  • 临时挂载‌:
    sudo mount -t nfs 192.168.1.10:/shared_data /mnt/nfs_shared # 替换为服务器IP 
  • 永久挂载‌(编辑/etc/fstab):
    192.168.1.10:/shared_data /mnt/nfs_shared nfs defaults 0 0 
    • 验证挂载‌:
      sudo mount -a # 加载fstab配置 df -hT # 查看挂载状态 

7. 测试NFS共享
  • 作用‌:验证读写功能。
  • 客户端操作‌:
    echo "Test Content" > /mnt/nfs_shared/test.txt 
    cat /mnt/nfs_shared/test.txt # 查看是否写入成功 
  • 服务器端检查‌:
    cat /shared_data/test.txt # 确认内容同步 

总结表格

步骤详细说明示例命令/操作注意事项
1. 安装NFS服务端安装NFS工具包并启动服务。sudo dnf install nfs-utils不同发行版包名可能不同(Ubuntu使用nfs-kernel-server)。
2. 创建共享目录创建需共享的目录并设置权限。sudo mkdir /shared_data && chmod 777 /shared_data权限应根据需求最小化(例如避免777)。
3. 配置共享规则/etc/exports中定义客户端IP及权限。/shared_data 192.168.1.0/24(rw,sync)避免使用no_root_squash(安全风险)。
4. 应用配置重新加载NFS共享规则。sudo exportfs -arv修改/etc/exports后必须执行此命令。
5. 配置防火墙开放NFS相关端口。firewall-cmd --add-service=nfs若使用iptables,需手动放行端口。
6. 客户端挂载安装客户端工具并挂载共享目录。mount -t nfs 192.168.1.10:/shared_data /mnt/nfs_shared永久挂载需编辑/etc/fstab
7. 测试共享功能验证客户端与服务器端的读写同步。echo "Test" > /mnt/nfs_shared/test.txt检查权限和网络连通性。

闲谈

    我... ...懒得写了。没人投票,我就摸鱼吧~那么谁在这些帖子呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值