部署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
)。
- 默认使用Apache根目录(
3. 添加RPM包
- 作用:将需要共享的RPM包复制到仓库目录。
- 命令:
sudo cp /path/to/rpms/*.rpm /var/www/html/dnf-repo/
- 说明:
- 可通过手动复制或脚本同步RPM包。
- 若需镜像官方仓库,可使用
rsync
或reposync
同步。
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
- 确保SELinux放行访问(如需):
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. 自动同步(可选) | 使用rsync 或reposync 同步外部仓库,并设置定时任务。 | 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)等端口。
- NFS依赖
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 | 检查权限和网络连通性。 |
闲谈
我... ...懒得写了。没人投票,我就摸鱼吧~那么谁在这些帖子呢?