部署DNF仓库及NFS共享服务

前言

在现代Linux系统中,软件包的高效管理是保障系统稳定性和扩展性的关键。DNF作为新一代RPM包管理工具,通过自动解决依赖关系和灵活的仓库配置,极大简化了软件安装、升级及维护的复杂度。通过DNF工具,管理员可快速构建本地镜像源,减少对外部网络的依赖,尤其适用于企业内网环境,实现软件资源的集中管理与快速分发。

此外,网络文件系统(NFS)作为跨服务器数据共享的核心协议,为分布式系统提供了无缝的存储整合能力。通过NFS,多台服务器可高效访问同一存储资源,支撑负载均衡集群、数据备份等场景。

配置DNF

借助于DNF软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,无须逐个、手动安装每一个rpm包。DNF与YUM完全兼容,提供了YUM兼容的命令行以及为扩展和插件提供API,使用DNF需要管理员权限。

配置DNF配置文件

DNF的主要配置文件是/etc/dnf/dnf.conf,该文件包括两部分:

a.“main”:部分保存着DNF的全局设置

b.“repository”:部分保存着软件源的设置,可以有零个或多个“repository”

另外,在/etc/yum.repos.d目录中保存着零个或多个repo源相关文件,它们也可以定义不同的“repository”。

所以openEuler软件源的配置一般有两种方式,一种是直接配置/etc/dnf/dnf.conf文件中的“repository”部分,另外一种是在/etc/yum.repos.d目录下增加.repo文件

配置main部分

/etc/dnf.conf文件包含的“main”部分,配置示例如下

常用选项说明:

参数名称说明
cachedir缓存目录,该目录用于存储RPM包和数据库文件
keepcache可选值是1和0,表示是否要缓存已安装成功的那些RPM包及头文件,缺省值为0,即不缓存
debuglevel设置dnf生成的debug信息,取值范围:0~10,数值越大会输出越详细的debug信息,缺省值为2,设置为0表示不输出debug信息
clean_requirements_on_remove删除在dnf remove期间不再使用的依赖项,如果软件包是通过DNF安装的,而不是通过显示用户请求安装的,则只能通过clean_requirements_on_remove删除软件包,即它是作为依赖项引入的,缺省值为True。
best升级包时,总是尝试安装其最高版本,如果最高版本无法安装,则提示无法安装的原因并停止安装,缺省值为True
obsoletes可选值1和0,设置是否允许更新陈旧的RPM包。缺省值为1,表示允许更新
gpgcheck可选值1和0,设置是否进行gpg校验。缺省值1,表示需要校验
plugins可选值1和0,表示启用或禁用dnf插件,缺省值1,表示启用dnf插件
installonly_limit设置可以同时安装“installonlypkgs”指令列出包的数量。缺省值3,不建议降低此值

配置repository部分

repository部分允许您定义定制化的oenEuler软件源仓库,各个仓库的名称不能相同,否则会引起冲突。配置repository部分有两种方式,一种是直接配置/etc/dnf/dnf.conf文件中的“repository”部分,另一种是配置/etc/yum.repos.d目录下的.repo文件。

直接配置/etc/dnf/dnf.conf文件中的”repository“部分,下面是此部分的一个最小配置示例:

选项说明:

参数说明
name=repository_name软件仓库(repository)描述的字符串
baseur1=repository_ur1

软件仓库的地址

a.使用http协议的网络位置:例,http://path/to/repo

b.使用ftp协议的网络位置:例,ftp://path/to/repo

c.本地位置:例,file:///path/to/local/repo

配置/etc/yum.repos.d目录下的.repo文件。openEuler提供多种repo源供用户在线使用,各repo源含义可参考系统安装。使用root权限添加openEuler repo源,示例:

显示当前配置

a.显示当前的配置信息:dnf config-manager --dump

b.显示相应软件源的配置,首先查询repo id:dnf repolist

c.然后执行如下命令,显示对应id的软件源配置,其中repository为查询得到的repo id:dnf config-manager --dump repository

d.全局正则表达式,显示所有匹配部分的设置:dnf config-manager --dump glob_expression

创建本地软件源仓库

步骤

1.安装createrepo软件包

dnf  install  createrepo

2.将需要的软件包复制到一个目录下,如/mnt/local_repo/

3.创建软件源

createrepo  /mnt/local_repo

添加、禁用和启用软件源

添加软件源

要定义一个新的软件源仓库,您可以在/etc/dnf/dnf.conf文件中添加“repository”部分,或者在/etc/yum.repos.d/目录下添加“.repo”文件进行说明。

要在系统中添加一个这样的源,请在root权限下执行如下命令,执行完成之后会在/etc/yum.repos.d/目录下生成对应的repo文件。其中repository_url为repo源地址。

命令:dnf  config-manager --add-repo repository_url

启用软件源

启用软件源在root权限下执行如下命令,其中repository为新增.repo文件中的repo id(可通过dnf repolist查询)

命令:dnf config-manager --set-enable repository

也可以使用一个全局正则表达式,来启用所有匹配的软件源。其中glob_expression为对应的正则表达式,用于同时匹配多个repo id:

dnf config-manager  --set-enable glob_expression

禁用软件源

root权限下执行如下命令:

dnf config-manager  --set-disable repository

同样的,也可以使用一个正则表达式来禁用所有匹配的软件源:

dnf config-manager  --set-disable glob_expression

管理软件包

搜索软件包

可以使用rpm包名称、缩写或者描述搜索需要的RPM包

命令:dnf  search  httpd(以httpd为例)

列出软件包清单

要列出系统中所有已安装的以及可用的RPM包信息

命令:dnf install all

要列出系统中特定的RPM包信息

命令:dnf list httpd(httpd为例)

显示RPM包信息

要显示一个或者多个RPM包信息,多个包之间以空格分隔

命令:dnf info httpd zip(以httpd,zip两个包为例)

安装RPM包

要安装一个软件包及其所有未安装的依赖,在root权限下执行以下命令:

dnf install package_name

下载软件包

使用dnf下载软件包,root权限下执行命令

命令:dnf download --resolve package_name

删除软件包

命令:dnf remove package_name

管理软件包组

软件包集合是服务于一个共同的目的一组软件包,例如系统工具等。

列出软件包组清单

使用summary参数,可以列出所有已安装软件包组、可用的组,可用的环境组

命令:dnf groups summary

要列出所有软件包组和它们的组ID

命令:dnf group list

显示软件包组信息

要列出包含在一个软件包组中必须安装的包和可选包

命令:dnf group info glob_expression

例:显示Development Tools信息

命令:dnf group info “Development Tools”

安装软件包组

每一个软件包组都有自己的名称以及相应的ID,可以使用软件包组名称或它的ID进行安装(root权限)

命令:dnf group install group_name

           dnf group install groupid

删除软件包组

命令:dnf group remove group_name

            dnf group remove groupid

检查并更新

dnf可以检查系统中是否有软件包需要更新

检查更新

显示当前系统可用的更新

命令:dnf check-update

升级

root权限下,升级单个软件包

命令:dnf update package_name

更新所有的包和它们的依赖

命令:dnf update

NFS共享存储服务

NFS是一种基于TCP/IP传输的网络文件系统协议,最初由Sun公司开发。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源,对于大多数负载均衡群集来说,使用NFS协议共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议

使用NFS发布共享资源

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

1.安装nfs-utils、rpcbind软件包

手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs

命令:dnf install -y nfs-utils rpcbind

           systemctl enable nfs

           systemctl enable rpcbind

2.设置共享目录

NFS的配置文件为/etc/exports,文件内默认为空(无任何共享)。在exports文件中设置共享资源时,记录格式为“目录位置客户机地址(权限选项)”

例:将文件/opt/wwwroot共享给192.168.10.0/24网段使用,允许读写操作

命令:mkdir -p /opt/wwwroot

           vim /etc/exports

/opt/wwwroot  192.168.10.0/24(rw,sync,no_root_squash)

其中客户机地址可以是主机名、IP地址、网段地址,允许使用*、?通配符;权限选项中rw表示允许读写(ro为只读),sync表示同步写入,no_root_squash表示当客户机以root身份访问时赋予本地root权限。

当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格分隔指定多个“客户机(权限选项)”即可

例:将/var/ftp/public目录共享给两个客户机,并分别给予只读、读写权限

命令:vi /etc/exports

/var/ftp/pub 192.168.10.101(ro)  192.168.10.102(rw)

3.启动NFS服务程序

systemctl start rpcbind

systemctl start nfs-server

dnf install net-tools -y (安装网络工具,否则无法使用netstat)

netstat -anpt | grep rpc

4.查看本机发布的NFS共享目录

showmount -e

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

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

1.安装并启动rpcbind

若要正常访问NFS共享资源,客户机中也需要安装rpcbind软件包,并启动rpcbind系统服务

命令:dnf  install  -y  rpcbind  nfs-utils

           systemctl  enable  rpcbind

           systemctl  start  rpcbind

使用showmount查看NFS服务器共享哪些目录,格式为“showmount  -e  服务器地址”  

命令:showmount  -e  192.168.10.101

2.手动挂载NFS共享目录

以root身份执行mount操作,将NFS服务器共享的/opt/wwwroot目录挂载到本地目录/var/www/html。与挂载本地文件系统不同的是,设备位置处应指出服务器地址

命令:mount  192.168.10.101:/opt/www/html  /var/www/html

          tail -l  /etc/mtab(确认挂载结果)

          vim  /var/www/html/index.html(在客户机创建测试文件)

test web document

完成挂载后,访问客户机/var/www/html文件夹,实际上就相当于访问NFS服务器中的/opt/wwwroot文件夹,其中的网络映射过程对于用户程序来说是透明的。例如,上述操作中创建的测试文件,会立刻出现在服务器的/opt/wwwroot目录下

3.fstab自动挂载设置

修改/etc/fstab配置文件,加入NFS共享目录的挂载设置,注意将文件系统类型设为nfs,挂载参数建议添加_netdev(设备需要网络);若添加soft、intr参数可以实现软挂载,允许在网络中断时放弃挂载。这样客户机就可以在每次开机后自动挂载NFS共享资源了

vim /etc/fstab

192.168.10.101:/opt/wwwroot  /var/www/html  nfs  default,_netdev  0  0

4.强制卸载NFS

NFS客户端与服务器段的耦合度是非常高的,如果客户端 正在挂载使用,服务器端NFS服务突然间停到了,那么在客户端就会出现执行df -h 命令卡死的现象,这个时候使用mount命令是无法直接卸载的,需要加上 -lf才能卸载

命令:umount  /var/www/html(显示device is busy)

          umount  -lf  /var/www/html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值