当前位置: 移动技术网 > 网络运营>服务器>Linux > Linux网络----YUM仓库与NFS远程存储

Linux网络----YUM仓库与NFS远程存储

2020年07月15日  | 移动技术网网络运营  | 我要评论
文章目录前言一:YUM仓库服务1.1:YUM概述1.2:准备安装源1.2.1:软件仓库的提供方式 ****1.2.2:RPM软件包的来源1.2.3:构建CentOS7软件仓库1.2.4:在软件仓库中加入非官方RPM包组1.2.5:配置软件仓库位置(客户机端)1.3:vsftp构建远程yum仓库实验1.3.1:构建环境1.3.2:实验过程1.4:yum工具概述1.5:软件包查询1.6:软件安装升级与卸载二:NFS共享存储服务2.1:网络文件系统(Network File System)2.2:使用NFS

前言

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

  • 网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(pressentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

    对于大多数负责均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。

    但是,NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。

一:YUM仓库服务

1.1:YUM概述

  • YUM(Yellow dog Upater,Modified)
  • 基于RPM包构建的软件更新机制
  • 可以自动解决依赖关系
  • 所有软件包由几种的YUM软件仓库提供
  • YUM仓库----->客户机

1.2:准备安装源

1.2.1:软件仓库的提供方式 ****

FTP服务:ftp://…

HTTP服务:http://…

本地目录:file://…

1.2.2:RPM软件包的来源

CentOS发布的RPM包集合

第三方组织发布的RPM包集合

用户自定义的RPM包集合

1.2.3:构建CentOS7软件仓库

  • RPM包来自CentOS7 DVD光盘
  • 通过FTP,HTTP或本地目录提供给客户机

1.2.4:在软件仓库中加入非官方RPM包组

  • 包括存在依赖关系的所有RPM包
  • 使用createrepo工具建立仓库数据文件

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

  • 为客户机指定YUM仓库位置

    配置文件:/etc/yum.repo.d/*.repo

  • 直接以CentOS 7光盘作软件仓库

    将CentOS7光盘放入光驱

    指定仓库位置,URL地址为file:///media/cdrom

1.3:vsftp构建远程yum仓库实验

1.3.1:构建环境

  • VMware 软件
  • centos7虚拟机两台

1.3.2:实验过程

  • 服务机配置步骤

1:挂载光盘镜像

2:安装vsftp服务 yum install -y vsftp*

3:找到ftp站点 /var/ftp, 创建目录,复制镜像进去

cp -rf /mnt/* /var/ftp/centos7/ & 放到后台允许

4:建立Yum索引环境

creater

5:关闭防火墙开启vsftp服务

systemctl start vsftp

  • 客户机配置步骤:

1:测试访问ftp服务端 yum install ftp

​ ftp 192.168.100.110 (服务端地址)

​ 客户端地址:192.168.100.100

2.配置repo仓库文件

vim abc.repo

  • YUM仓库服务端

    第一步:将centos7光盘镜像挂载到服务端(光盘镜像要连接状态)

    [root@server ftp]# vim /etc/fstab                              '将镜像挂载到本地'
    
    /dev/cdrom      /mnt    iso9660 defaults        0       0
    [root@server dev]# yum install -y vsftp*                       '安装vsftp软件包'
    

    第二步:进入服务器站点,将镜像复制到文件夹

    [root@server ftp]# mkdir centos7                      '在站点下创建文件夹,存放镜像'
    [root@server ftp]# ls
    centos7  pub
    [root@server ftp]# cd /mnt
    [root@server mnt]# ll
    总用量 686
    -rw-rw-r--. 1 root root     14 11月 26 2018 CentOS_BuildTag
    drwxr-xr-x. 3 root root   2048 11月 26 2018 EFI
    -rw-rw-r--. 1 root root    227 8月  30 2017 EULA
    -rw-rw-r--. 1 root root  18009 12月 10 2015 GPL
    drwxr-xr-x. 3 root root   2048 11月 26 2018 images
    drwxr-xr-x. 2 root root   2048 11月 26 2018 isolinux
    drwxr-xr-x. 2 root root   2048 11月 26 2018 LiveOS
    drwxrwxr-x. 2 root root 663552 11月 26 2018 Packages
    drwxrwxr-x. 2 root root   4096 11月 26 2018 repodata
    -rw-rw-r--. 1 root root   1690 12月 10 2015 RPM-GPG-KEY-CentOS-7
    -rw-rw-r--. 1 root root   1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7
    -r--r--r--. 1 root root   2883 11月 26 2018 TRANS.TBL
    [root@server ~]# cp -rf /mnt/* /var/ftp/centos7/ &     '将镜像强制复制到centos7中,并在后台运行'
    [1] 19122
    [root@server ~]# cd /var/ftp
    [root@server ftp]# ls
    centos7  pub
    [root@server ftp]# jobs                              '查看后台运行的操作'
    [1]+  运行中               cp -i -rf /mnt/* /var/ftp/centos7/ &(工作目录:~)
    [root@server ftp]# jobs
    [root@server ftp]# ls
    centos7  pub
    

    第三步:制作repo镜像

    [root@server ftp]# mkdir other
    [root@server ftp]# ls
    centos7  other  pub
    [root@server ftp]# createrepo -g /mnt/repodata/repomd.xml other/  '以现有的repodata目录为样板 '
    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Generating sqlite DBs
    Sqlite DBs complete
    [root@server ftp]# ls other/
    repodata
    [root@server ftp]# ls other/repodata
    01a3b489a465bcac22a43492163df43451dc6ce47d27f66de289756b91635523-filelists.sqlite.bz2
    12bbefc88e08f473cf860b4c150a9a8627f68eb256c9d54b80940e5dc224e85c-repomd.xml.gz
    401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz
    5dc1e6e73c84803f059bb3065e684e56adfc289a7e398946574d79dac6643945-primary.sqlite.bz2
    6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz
    7c36572015e075add2b38b900837bcdbb8a504130ddff49b2351a7fc0affa3d4-other.sqlite.bz2
    cdcb85c0e4daf1675d1ab6c42b0cacc6f9460d938296f7bf52678514a86a0554-repomd.xml
    dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz
    repomd.xml
    

    第四步:启动服务

    [root@server ftp]# setenforce 0
    [root@server ftp]# iptables -F
    [root@server ftp]# systemctl start vsftpd
    [root@server ftp]# systemctl status vsftpd
    ● vsftpd.service - Vsftpd ftp daemon
       Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
       Active: active (running) since 四 2020-07-09 18:14:43 CST; 4min 17s ago
      Process: 19255 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
      
    vsftpd中
    
    21端口负责连接服务器
    
    20端口负责上传和下载
    
  • 客户端

    第五步:进入客户端配置:安装ftp服务,查看是否可以看到站点

    [root@client ~]# yum install -y ftp
    [root@client ~]# ftp 192.168.100.110	'使用ftp用匿名方式登录服务端'
    Connected to 192.168.100.110 (192.168.100.110).
    220 (vsFTPd 3.0.2)
    Name (192.168.100.110:root): ftp         '输入名称'
    331 Please specify the password.
    Password:                                '输入root用户登录密码'
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> ls
    227 Entering Passive Mode (192,168,100,110,62,94).
    150 Here comes the directory listing.
    drwxr-xr-x    8 0        0             220 Jul 09 10:09 centos7
    drwxr-xr-x    3 0        0              22 Jul 09 10:13 other
    drwxr-xr-x    2 0        0               6 Apr 01 04:55 pub
    226 Directory send OK.
    ftp> exit
    221 Goodbye.
    

    第六步:将所有的repo文件移动到文件夹中,并编写。repo文件

    [root@client ~]# cd /etc/yum.repos.d
    [root@client yum.repos.d]# mkdir bak
    [root@client yum.repos.d]# mv *.repo bak
    [root@client yum.repos.d]# yum install -y tree
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    There are no enabled repos.
     Run "yum repolist all" to see the repos you have.
     To enable Red Hat Subscription Management repositories:
         subscription-manager repos --enable <repo>
     To enable custom repositories:
         yum-config-manager --enable <repo>
         
    [root@client yum.repos.d]# vim abc.repo 
    [base]                                                                  '//仓库类别'
    name=centos7.Packages                                   '//仓库名称(说明) '
    baseurl=ftp://192.168.100.110/centos7              '//URL 访问路径 '
    enabled=1
    gpgcheck=1                                                         '//验证软件包的签名 '
    gpgkey=ftp://192.168.100.110/centos7/RPM-GPG-KEY-CentOS-7 '将服务端复制的秘钥粘贴到此,//GPG 公钥文件的位置 '
    
    [other]
    name=other.Packages
    baseurl=ftp://192.168.100.110/other
    enabled=1
    gpgcheck=0
    [root@client yum.repos.d]# yum clean all              #清除缓存
    [root@client yum.repos.d]# yum list                  #重新生成缓存列表
    [root@client yum.repos.d]# yum install -y tree    #已经可以使用远程yum仓库安装了
     ``
    

1.4:yum工具概述

  • 关于yum命令

    • 由软件包yum-…提供
    • 用来访问yum仓库,查询,下载及安装,卸载软件包
  • yum的配置文件
    基本设置:/etc/yum.conf
    仓库设置:/etc/yum.repos.d/*.repo
    日志文件:/var/log/yum.log

  • yum缓存目录
    存放下载的软件包,仓库信息等数据
    位于/var/cache/yum/basearch(硬件架构如
    x*8664)/releasever(OS版本)

  • 清理缓存数据
    yum clean all

  • 生产缓存

    yum list

1.5:软件包查询

  • 查询软件包
    yum list [软件名]…
    yum info [软件名]…
    yum search <关键词>…

  • 查询软件包组
    yum grouplist [包组名]…
    yum groupinfo <包组名>…

1.6:软件安装升级与卸载

  • 安装软件

    yum install [软件名]
    yum groupinstall <包组名>

  • 升级软件

    yum update

    yum groupdate

    yum update 更新软件包,连内核一起更新

    yum upgrade 只更新软件包,但不更新内核

  • 卸载软件

    yum remove <软件名>…
    yum groupremove <包组名>…

二:NFS共享存储服务

2.1:网络文件系统(Network File System)

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

2.2:使用NFS发布共享资源

  • 安装nfs-utils,rpcbind软件包

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

  • 设置共享目录

    NFS的配置文件为/etc/exports,文件内容默认为空(无任何共享)

    在exports文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)”

    [root@localhost opt]# mkdir wwwroot
    [root@localhost opt]# vim /etc/exports
    /opt/wwwroot 192.168.197.171(rw,sync,no_root_squash)

    
    
  • 启动NFS服务程序

    [root@localhost opt]# mkdir wwwroot
    [root@localhost opt]# vim /etc/exports
    [root@localhost opt]# systemctl start rpcbind
    [root@localhost opt]# systemctl start nfs
    [root@localhost opt]# netstat -nuap | grep rpcbind
    udp        0      0 0.0.0.0:600             0.0.0.0:*                           48338/rpcbind       
    udp        0      0 0.0.0.0:111             0.0.0.0:*                           48338/rpcbind  
    
  • 查看本机发布的NFS共享目录

    showmount -e

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

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

    • 若要正常访问NFS共享资源,客户机中也需要安装rpcbind软件包,并启动rpcbind服务
    • 为了可以使用showmount查询工具,建议将nfs-utils软件包也一并装上
    • 使用 “showmount -e 服务器地址”可以查看NFS服务器端共享了那些目录
  • 手动挂载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文件夹,其中的网络映射过程对于用户程序来说是透明的
  • fstab自动挂载设置

    • 修改/etc/fstab配置文件,加入NFS共享目录的挂载设置。

    • 注意将文件系统类型设置为nfs,挂载参数建议添加_netdev(设备需要网络)

    • 若添加soft,intr参数可以实现软挂载,允许在网络中断时放弃挂载。

    • [root@localhost opt]# vim /etc/fstab
      192.168.197.171:/opt/wwwroot /var/www/html      nfs     defaults,_netdev        0 0
      
  • 强制卸载NFS

    • NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端NFS服务突然停掉了,那么在客户端就会出现df -h命令卡死的现象
    • 此时使用umount命令是无法直接卸载的,需要加上-lf才能卸载
    • 出现卡死现象时,需要重新打开一个终端,执行 cat/etc/rc.local命令,查看挂载点
    • 然后使用umount命令卸载,其中-l表示解除正在繁忙的文件系统,-f表示强制

2.4:构建NFS实验

2.4.1:实验环境

  • VMware软件
  • 两个centos7系统,一个做客户端,一个做服务端

2.4.2:实验过程

  • 服务机

    第一步:服务端添加硬盘并重启,服务端和客户端都修改名称

#存储服务器添加一块硬盘并分区
[root@server ~]# fdisk -l 

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sda:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000d8ce0

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    10227711     4064256   82  Linux swap / Solaris
/dev/sda3        10227712   629145599   309458944   83  Linux
[root@server ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x6347b883 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

第二步:格式化并挂载刚添加的硬盘

[root@server ~]# mkfs.xfs /dev/sdb1                   '对分区进行格式化'
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@server ~]# mkdir /share
[root@server ~]# vim /etc/fstab                          '挂载'
[root@server ~]# mount -a
[root@server ~]# df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs       295G  4.7G  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  8.0K  378M    1% /run/user/42
tmpfs          tmpfs     378M     0  378M    0% /run/user/0
/dev/sdb1      xfs        20G   33M   20G    1% /share

/dev/sdb1       /share  xfs     defaults        0       0

第三步:安装nfs-utils rpcbind,并设置为开机自启,设置共享目录

[root@server ~]# iptables -F
[root@server ~]# setenforce 0
[root@server share]# vim /etc/exports                #重要
/share  192.168.100.0/24(rw,sync,no_root_squash)

[root@server ~]# systemctl start nfs
[root@server ~]# systemctl enable nfs
[root@server ~]# systemctl enable rpcbind
[root@server ~]# systemctl start rpcbind

第四步:查看本机发布的NFS共享目录

[root@server ~]# showmount -e
Export list for server:
/share 192.168.100.0/24
  • 客户机

    第五步:进客户端,关闭防火墙,安装httpd服务

    [root@client ~]# yum install -y httpd 
    [root@client ~]# ls /var/www/html
    [root@client html]# setenforce 0
    [root@client html]# iptables -F
    

    第六步:手动挂载NFS共享目录或者使用自动挂载

    [root@client ~]# mount 192.168.100.110:/share /var/www/html/
    [root@client ~]# df -hT
    文件系统               类型      容量  已用  可用 已用% 挂载点
    /dev/sda2              xfs       201G  4.1G  197G    3% /
    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/sda5              xfs        40G   37M   40G    1% /home
    /dev/sda1              xfs        50G  174M   50G    1% /boot
    tmpfs                  tmpfs     378M   12K  378M    1% /run/user/42
    tmpfs                  tmpfs     378M     0  378M    0% /run/user/0
    192.168.100.110:/share nfs4       20G   32M   20G    1% /var/www/html
    #也可以永久挂载
    [root@client html]# vim /etc/fstab
    192.168.100.110:/share  /var/www/html/  nfs     defaults,_netdev        0       0
    

`
第七步:配置httpd网页并开启服务

[root@client ~]# cd /var/www/html
[root@client html]# ll
总用量 0
[root@client html]# vim 

<h1>today is Thursday</h1>

[root@client html]# setenforce 0
[root@client html]# iptables -F
[root@client html]# systemctl start httpd

在网页访问appache服务器,成功访问 文件内容

mark

  • 验证存储服务器删除文件,访问页面不显示内容

    [root@server share]# rm -rf  
    [root@server share]# ll
    总用量 0
    

    mark

  • 这里注意当存储服务器宕机,客户机df -Th 无法显示,要先解挂

    [root@server share]# systemctl stop nfs
    [root@server share]# 
    
    [root@client html]# df -Th
    
    
    
    ^C
    [root@client html]# umount -lf /var/www/html
    [root@client html]# df -Th
    文件系统       类型      容量  已用  可用 已用% 挂载点
    /dev/sda2      xfs       201G  4.1G  197G    3% /
    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/sda5      xfs        40G   37M   40G    1% /home
    /dev/sda1      xfs        50G  174M   50G    1% /boot
    tmpfs          tmpfs     378M   12K  378M    1% /run/user/42
    tmpfs          tmpfs     378M     0  378M    0% /run/user/0
    
    

本文地址:https://blog.csdn.net/LPFAM/article/details/107308604

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网