部署YUM仓库及NFS共享访问

YUM

YUM简介

CentOS使用yum和dnf 解决rpm的包依赖关系。

YUM:rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具,CentOS 8 使用dnf代替了yum,不过保留了和yum的兼容性,配置也是通用的。

yum工作原理

yum依赖于环境,依赖于服务端和客户端,允许跨网络。

Yum基于C/S模式:

  • yum 服务器存放rpm包和相关包的元数据
  • yum客户端访问yum服务器进行安装或查询等

Yum实现过程:

先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。 服务器(RPM包和元数据缺一不可):

  • RPM包 (存放在包文件夹Packages中)
  • 元数据(存放在元数据文件夹repodata中,其中包含:目录(软件的目录),软件的依赖关系,软件的分组)

[root@localhost ~]# mount /dev/sr0 /mnt     //将光盘挂载到/mnt/目录下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /mnt     //查看光盘内的包文件夹和元数据文件夹
CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL

yum客户端配置

yum客户端配置文件

 /etc/yum.conf              #为所有仓库提供公共配置
 /etc/yum.repos.d/*.repo    #每个仓库的配置文件

yum主配置文件

位置:/etc/yum.conf

[root@localhost ~]# vim /etc/yum.conf 

[main]
cachedir=/var/cache/yum/$basearch/$releasever     //yum下载的RPM包的缓存目录
keepcache=0        //是否保存缓存  0代表不保存,1代表保存
debuglevel=2       //调试级别(0-10),默认为2
logfile=/var/log/yum.log      //日志文件位置
exactarch=1                 //是否允许不同版本的rpm安装
obsoletes=1//这是一个update的参数,是否允许旧版本的运行 gpgcheck=1                         //是否验证GPG(GNU Private Guard)密钥,1表示验证 
plugins=1                           //是否允许插件,1代表允许 
installonly_limit=5                 //保存几个内核
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

yum仓库配置文件

2.2.1 仓库配置文件说明

位置:/etc/yum.repos.d/*.repo

系统内默认的yum仓库,是centos官方的yum源(国外源),需要连通外网才可以使用。

[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo
[root@localhost ~]# vim jlx.repo          //yum仓库配置文件格式

[jlx]       
name=jlx                  //设置名称
baseurl=file:///mnt       //设置链接地址,file://是本地源的固定格式
enabled=1                 //开启此yum源
gpgcheck=0                //是否验证公钥,0表示无需验证

yum仓库配置文件中baseurl的几种形式:

 # 本地源
 本地目录   file://        
 ​
 # FTP源
 FTP服务    ftp://
 
 # 网络源
 http://
 https://

yum命令详解

命令不加关键字加入关键词、软件包、软件包组
yum list显示所有可用包单个的可安装包
yum info显示所有可用包的信息单个具体的信息
yum search\模糊查找所有的相关信息
yum whatprovides\精确查找
yum install\安装具体软件包
yum remove\卸载具体软件

包组:

命令不加关键字加入关键词、软件包、软件包组
yum grouplist显示所有可用包组显示具体的包组
yum groupinfo显示所有的包组具体信息显示具体的包组的具体信息
yum groupremove\卸载具体包组软件

yum仓库搭建方式

软件仓库的提供方式:

搭建本地yum仓库

搭建步骤:

步骤1、挂载光盘(/dev/sr0或/dev/cdrom都可以,/dev/cdrom是/dev/sr0的软链接)

[root@localhost ~]# mount /dev/sr0 /mnt/          //将光盘挂载到/mnt目录下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -Th                //查看挂载是否成功
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        37G  3.9G   34G   11% /
devtmpfs                devtmpfs  897M     0  897M    0% /dev
tmpfs                   tmpfs     912M     0  912M    0% /dev/shm
tmpfs                   tmpfs     912M  9.1M  903M    1% /run
tmpfs                   tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  179M  836M   18% /boot
tmpfs                   tmpfs     183M  4.0K  183M    1% /run/user/42
tmpfs                   tmpfs     183M   44K  183M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt

mount命令是一次性挂载,退出当前终端或重启后就不存在了。永久挂载需要修改配置文件/etc/fstab。

步骤2、切换到 /etc/yum.repo.d/目录,将自带的仓库文件移走。

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo         CentOS-Media.repo
CentOS-Debuginfo.repo  CentOS-Sources.repo
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv *.repo bak
[root@localhost yum.repos.d]# ls
bak
步骤3、新建yum仓库文件。

name=local             //设置名称
baseurl=file:///mnt       //设置链接地址,file://是固定格式,指向/mnt
enable=1                  //开启此yum源
gpgcheck=0                //无需验证公钥
步骤4、清理缓存并安装软件。

 [root@localhost yum.repos.d]# yum clean all    //清理yum缓存
 [root@localhost yum.repos.d]# yum makecache    //重新建立元数据
 [root@localhost yum.repos.d]# yum list         //查看可安装的软件列表
 [root@localhost yum.repos.d]# yum install dhcp -y    //yum安装dhcp测试是否成功

 搭建阿里云仓库(http方式外网环境)

默认的仓库文件是国外云仓库,速度比较慢,可以使用阿里云仓库代替。

操作步骤:

步骤1、切换到 /etc/yum.repo.d/目录,将自带的仓库文件移走。

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv *.repo bak/
[root@localhost yum.repos.d]# ls
bak
步骤2、新建阿里云仓库。

[root@localhost yum.repos.d]# vim aly.repo

[aly]
name=aliyun
#baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=0


[epel]                   //epel源仓库
name=epel
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
gpgcheck=0

[update]                   //更新包仓库
name=update
baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/
gpgcheck=0
步骤3、清理缓存并安装软件。

 [root@localhost yum.repos.d]# yum clean all    //清理yum缓存
 [root@localhost yum.repos.d]# yum makecache    //重新建立元数据
 [root@localhost yum.repos.d]# yum list         //查看可安装的软件列表
 [root@localhost yum.repos.d]# yum install tree -y    //yum安装tree测试是否成功

使用命令方式生成仓库文件

命令格式:

 wget -O  /etc/yum.repos.d/name.repo(自定义以repo结尾的文件名)  源路径
wget 命令配置阿里云仓库:

 wget -O  /etc/yum.repos.d/Centos-7.repo  http://mirrors.aliyun.com/repo/Cento

载依赖包到本地(但不安装)

当内网的一台主机安装某个软件包却缺少依赖包时,可以先由一台可连接外网的服务器下载依赖包,之后共享给这台主机。

这时可以使用“yum install --downloadonly”命令,该命令可以仅下载所需软件及其依赖包、而不安装软件,大大减少了无外网安装时找依赖包的问题。命令格式如下:

 yum install --downloadonly +软件名称 --downloaddir=指定rpm包存放路径

例如,下载nginx所需要的依赖包到/mnt/nginx目录内:

 yum install nginx --downloadonly --downloaddir=/mnt/nginx

NFS

简介

NFS(Network File System 网络文件服务),是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。

在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。

NFS的特点:

  • 采用TCP/IP传输网络文件
  • 安全性低
  • 简单易操作
  • 适合局域网环境

NFS优势:

节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率。

NFS共享存储服务的操作步骤

实验环境:

服务端:192.168.19.20

客户端:192.168.19.10

实验步骤:

1、服务端设置:

1.关闭防火墙和selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

2.安装nfs-utils和rpcbind软件包
[root@localhost ~]# yum install nfs-utils rpcbind -y

3.新建共享目录,在目录内创建文件
[root@localhost ~]# mkdir /share
[root@localhost ~]# touch /share/1.txt

4.编辑nfs配置文件
[root@localhost ~]# vim /etc/exports  
/share  192.168.72.0/24

5.启动两个服务,查看详细的nfs信息
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# showmount -e         //查看本机发布的NFS共享目录
Export list for localhost.localdomain:
/share 192.168.19.0/24
[root@localhost ~]# exportfs -v         //查看NFS共享目录的详细信息
/share            192.168.19.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)

 

 

 

 

2、客户端设置:

1.检查nfs-utils和rpcbind两个软件是否已安装。
[root@localhost ~]# rpm -q rpcbind 
rpcbind-0.2.0-42.el7.x86_64
[root@localhost ~]# rpm -q nfs-utils 
nfs-utils-1.3.0-0.48.el7.x86_64

2.将服务端的共享目录/share,挂载到本地的/mnt目录下。
[root@localhost ~]# mount 192.168.19.20:/share /mnt
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        39G  4.9G   34G   13% /
devtmpfs                devtmpfs  897M     0  897M    0% /dev
tmpfs                   tmpfs     912M     0  912M    0% /dev/shm
tmpfs                   tmpfs     912M  9.1M  903M    1% /run
tmpfs                   tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  179M  836M   18% /boot
/dev/mapper/centos-home xfs        19G   37M   19G    1% /home
tmpfs                   tmpfs     183M   32K  183M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
192.168.19.20:/share    nfs4       37G  4.6G   33G   13% /mnt

3.查看共享目录内的文件
[root@localhost ~]# ls /mnt/
1.txt

3、测试在服务端的共享目录中新建文件f2,观察客户端能否查看到

1.服务端,在/share目录中新建文件f2
[root@localhost ~]# cd /share/
[root@localhost share]# touch 222
[root@localhost share]# ls
1.txt  222

2.客户端,查看共享目录挂载点内的文件
[root@localhost ~]# ls /mnt/
1.txt  222

 

补充

  • 启动服务后,可以使用 "ss -ntuap | grep 111" 命令查看端口是否已开启,以便确认服务是否正常启动了。

  • 使用mount命令只是临时挂载,如果想要将NFS共享目录永久挂载到本地,需要修改配置文件/etc/fstab。挂载参数为:defaults,_netdev。

  • 但如果在本机配置文件/etc/fstab中写入了永久挂载,之后服务端取消了对本机的NFS共享,那么本机重启时会出现 “CRTL-D” 报错,此时需要进入但用户模式,编辑/etc/fstab,将NFS共享目录的挂载信息删除。

  • 强制卸载 NFS:umount -lf 挂载设备/挂载点

  • 如果服务器端NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行 df -h 命令卡死的现象。这个时候直接使用umount 命令是无法直接卸载的,需要加上 -lf 选项才能卸载。

  • NFS服务端口号2049 rpcbind端口号111

总结

  • nfs 共享存储服务
    nfs 不是存储设备

  • 由于nfs 没有认证机制,并且是明文传输,所以安全性较差,一般在局域网环境使用

  • sync 写入数据会同时写入内存和硬盘(保证数据的安全,不会丢失,写入会受到硬件性能IO影响,可能会影响读写速度)

  • async 写入数据会在写到内存的缓存区里,然后根据系统的同步策略再刷新到硬盘中

  • 27
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值