Linux网络系列--YUM仓库部署与NFS服务(YUM仓库部署、YUM命令使用、NFS共享存储服务讲解及实验)

一、 构建YUM软件仓库

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

1.1 本地源YUM仓库配置

本地源YUM仓库的原理就是使用本地的文件夹作为软件仓库,在我们的虚拟机中,我们就使用光盘镜像文件中的软件包作为仓库里的文件。当然,这种方式的YUM仅限于本机使用,如果镜像光盘中没有的软件包,我们是不能进行安装的。

先将光盘镜像文件挂载到/mnt (挂载点随便选一个)
[root@localhost yum.repos.d]# mount /dev/cdrom /mnt    //光盘挂载到/mnt目录下
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir backup   //创建一个文件夹
[root@localhost yum.repos.d]# mv C* backup/   //将yum.repos.d文件夹中C开头的文件移动到backup文件夹中
[root@localhost yum.repos.d]# vi local.repo   //我们用vi编辑器新建一个文件,在里面写入以下本地源YUM配置
    [centos]   
    1 name=CentOS      仓库名称
    2 baseurl=file:///mnt     指明仓库所在位置
    3 gpgcheck=0     不进行公钥验证
    4 enabled=1      开启YUM仓库
  
wq保存退出
[root@localhost yum.repos.d]# yum clean all    //清楚本地原有缓存
[root@localhost yum.repos.d]# yum list   yum重新加载

1.2 远程yum仓库(借助FTP协议)

1.2.1 准备网络安装源(服务器端)

在我们安装系统光盘中,针对软件目录Package建立索引数据,这样我们就可以远程用FTP进行调用,就可以作为软件仓库了。

[root@localhost ~]# mount /dev/sr0 /mnt    //挂载光盘镜像
[root@localhost ~]# yum install vsftp* -y   //安装vsftp服务
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# cp -rf /mnt/* /var/ftp/centos7/ &   //复制软件源到ftp站点,放在后台运行
[4] 18831
[root@localhost ftp]# jobs    //查看运行的进程
[4]   运行中               cp -i -rf /mnt/* /var/ftp/centos7/ &
[root@localhost ftp]# mkdir other
[root@localhost ftp]# createrepo -g /mnt/repodata/repomd.xml other/   以现有的repodata为样板建立索引到other目录中
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete  
[root@localhost ftp]# setenforce 0   //关闭核心防护
[root@localhost ftp]# iptables -F    //清空防火墙规则
[root@localhost ftp]# systemctl start vsftpd    //开启vsftp服务

1.2.2 配置软件仓库位置(客户机端)

[root@localhost ~]# yum install stp -y   //安装ftp 
[root@localhost ~]# ftp 20.0.0.7    //用ftp连接服务端主机,测试访问ftp服务
Connected to 20.0.0.7 (20.0.0.7).
220 (vsFTPd 3.0.2)
Name (20.0.0.7:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (20,0,0,7,86,90).
150 Here comes the directory listing.
drwxr-xr-x    9 0        0             231 Jul 13 02:10 centos7
drwxr-xr-x    3 0        0              22 Jul 13 02:16 other
drwxr-xr-x    2 0        0               6 Oct 30  2018 pub
226 Directory send OK.
ftp> 

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv *.repo backup/
[root@localhost yum.repos.d]# vi new.repo  //配置仓库
[base]
name=centos7.package
baseurl=ftp://20.0.0.7/centos
enabled=1
gpgsheck=1
gpgkey=ftp://20.0.0.7/centos7/RPM-GPG-KEY-CentOS-7

[other]
name=other.package
baseurl=ftp://20.0.0.7/other
enabled=1
gpgcheck=0
[root@localhost yum.repos.d]# yum list   //重新加载

在这里插入图片描述

二、 YUM命令使用

yum grouplist 命令   
[root@localhost yum.repos.d]# yum grouplist 
已加载插件:fastestmirror, langpacks
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
Available Environment Groups:    可用环境组:(代表已经安装的)
   Minimal Install        最小安装
   Compute Node            计算节点
   Infrastructure Server    基础结构服务器
   File and Print Server    文件和打印服务器
   Basic Web Server        基本Web服务器
   Virtualization Host        虚拟化主机
   Server with GUI        GUI服务器
   GNOME Desktop        桌面桌面
   KDE Plasma Workspaces    KDE等离子工作区
   Development and Creative Workstation    开发创意工作站
Available Groups:        可用组    (表示还未安装的)
   Compatibility Libraries    兼容性库
   Console Internet Tools    控制台Internet工具
   Development Tools        开发工具
   Graphical Administration Tools    图形管理工具
   Legacy UNIX Compatibility    传统的Unix兼容性
   Scientific Support        科学支持
   Security Tools        安全工具
   Smart Card Support        智能卡支持
   System Administration Tools    系统管理工具
   System Management        系统管理
Done
yum update  //即更新软件包,同时也更新系统内核
yum upgrade  //只是更新软件包
yum install  //安装软件
yum remove   //卸载软件
yum list     //查看软件列表
yum clean all   //清空yum缓存
yum info     //查看软件包详细信息
yum whatprovides <文件或目录>   //查看文件或目录属于哪个软件包

三、 NFS共享存储服务

NFS是一种基于TCP/IP传输的网络文件系统协议,最初由sun公司开发。通过使用NFS协议,NFS客户机可以像访问本地目录一样访问远程NFS服务器中的共享资源。但是NFS没有用户认证机制,而且数据在网络上明文传输,安全性很差,一般只用于局域网。

3.1 使用NFS发布共共享资源

NFS网络文件系统特点:

  • 依赖于RPC(远程过程调用)
  • 需安装nfs-utils,rpcbind软件包
  • 系统服务:nfs,rpcbind
  • 共享配置文件:/etc/exports

3.1.1 安装nfs-utils,rpcbind软件包

提供RPC支持的服务为rpcbind,提供NFS共享的服务为nfs,安装完成后建议调整为开机自启。手动加载NFS共享服务时,应先启动rpcbind,然后在启动nfs

[root@localhost ~]# yum install nfs-utils rpcbind -y
[root@localhost ~]# systemctl enable nfs.service
[root@localhost ~]# systemctl enable rpcbind

在这里插入图片描述

3.1.2 设置共享目录

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

[root@localhost ~]# mkdir -p /opt/wwwroot
[root@localhost ~]# vi /etc/exports

在这里插入图片描述
rw代表可读写、ro代表只读,sync表示同步写入,no_root_squash表示当客户机以root身份访问时不降权,赋予本地root权限

3.1.3 启动NFS服务

[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs

3.1.4查看发布的NFS共享目录

[root@localhost ~]# showmount -e

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

  1. 安装rpcbind软件包,并启动rpcbind服务

若要正常访问NFS共享资源,客户机中也需要安装rpcbind软件包,并启动rpcbind服务
如果安装了nfs-utils软件包,使用 “showmount -e 服务器IP地址”可以查看NFS服务器端共享的目录。

  1. 手动挂载NFS共享目录

以root用户身份执行mount操作,将NFS服务器共享的/opt/wwwroot目录挂载到本地目录/var/www/html,与挂载本地文件系统不同的是,设备位置处应指出服务器地址。
如:mount 192.168.197.171:/opt/wwwroot /var/www/html
完成挂载后,访问客户机的/var/www/html文件夹,相当于访问NFS服务器中的/opt/wwwroot文件夹,其中的网络映射过程对于用户程序来说是透明的

  1. fstab自动挂载设置

修改/etc/fstab配置文件,加入NFS共享目录的挂载设置。注意将文件系统类型设置为nfs,挂载参数建议添加_netdev(设备需要网络),若添加soft,intr参数可以实现软挂载,允许在网络中断时放弃挂载。
4. 强制卸载NFS
如果客户端正在挂载使用,服务器端NFS服务突然down掉了,那么在客户端就会出现df -h命令卡死的现象。这时候umount命令是无法直接卸载的,需要加上-lf才能卸载
出现卡死现象时,需要重新打开一个终端,执行 cat/etc/rc.local命令,查看挂载点
然后使用umount命令卸载,其中-l表示解除正在繁忙的文件系统,-f表示强制

四、 NFS构建实验

实验目的

构建与验证NFS共享存储服务

实验环境

VMware软件两台centos7虚拟机

实验过程

  1. 在服务器端的虚拟机添加一块硬盘,分区并挂载
    在这里插入图片描述
    在这里插入图片描述
[root@localhost ~]# mkfs.xfs /dev/sdb1   //格式化分区
[root@localhost ~]# mkdir /share         //创建一个新目录作为挂载点
[root@localhost ~]# vi /etc/fstab        //将磁盘挂载写入配置文件
/dev/sdb1       /share  xfs     defaults        0 0

在这里插入图片描述

  1. 安装软件
[root@localhost ~]# iptables -F    //强控防火墙规则
[root@localhost ~]# setenforce 0   //关闭核心防护
[root@localhost ~]# yum install nfs-utils rpcbind -y   //安装两个软件
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 1:nfs-utils-1.3.0-0.61.el7.x86_64 已安装并且是最新版本
软件包 rpcbind-0.2.0-47.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost ~]# 

  1. 设置共享目录,并启动服务
[root@localhost ~]# ls /share/
[root@localhost ~]# vim /etc/exports    //进入编辑配置文件设置共享目录
/share  20.0.0.0/24 (rw,sync,no_root_squash)    //允许20.0.0.0网段的主机访问这个文件夹,可读写,同步,不降权
[root@localhost ~]# systemctl start rpcbind     //开启rpcbind服务
[root@localhost ~]# systemctl enable rpcbind    //设置rpcbind为开机自启动
[root@localhost ~]# systemctl start nfs         //开启nfs服务
[root@localhost ~]# systemctl enable nfs        //设置nfs为开机自启动
[root@localhost ~]# systemctl status nfs        //查看nfs服务状态
 nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
  Drop-In: /run/systemd/generator/nfs-server.service.d
           └─order-with-mounts.conf
   Active: active (exited) since  2020-07-13 11:52:31 CST; 16min ago
 Main PID: 9220 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

7 13 11:52:31 localhost.localdomain systemd[1]: Starting NFS server a...
7 13 11:52:31 localhost.localdomain systemd[1]: Started NFS server an...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]# 

在这里插入图片描述

  1. 查看文件夹是否被共享
[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/share 20.0.0.0/24
  1. 在客户机上安装httpd服务,并实现远程挂载
[root@localhost ~]# ls /var/www/html/
[root@localhost ~]# df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs       295G  4.2G  291G    2% /
devtmpfs       devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs          tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs          tmpfs     1.9G   13M  1.9G    1% /run
tmpfs          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1      xfs      1014M  174M  841M   18% /boot
tmpfs          tmpfs     378M  4.0K  378M    1% /run/user/42
tmpfs          tmpfs     378M   28K  378M    1% /run/user/0
/dev/sr0       iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
[root@localhost ~]# mount 20.0.0.7:/share /var/www/html/
[root@localhost ~]# df -Th
文件系统        类型      容量  已用  可用 已用% 挂载点
/dev/sda3       xfs       295G  4.2G  291G    2% /
devtmpfs        devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs           tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs           tmpfs     1.9G   13M  1.9G    1% /run
tmpfs           tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1       xfs      1014M  174M  841M   18% /boot
tmpfs           tmpfs     378M  4.0K  378M    1% /run/user/42
tmpfs           tmpfs     378M   28K  378M    1% /run/user/0
/dev/sr0        iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
20.0.0.7:/share nfs4       20G   32M   20G    1% /var/www/html
  1. 设置网页服务
客户端主机
[root@localhost ~]# cd /var/www/html/   
[root@localhost html]# vim index.html    //编辑一个网页文件
<h1>this is nfs </h1>
                 
服务端主机
[root@localhost ~]# cat /share/index.html   //查看客户端设置的网页
<h1>this is nfs </h1>

猜你喜欢

转载自blog.csdn.net/kimowinter/article/details/107309962