欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务

程序员文章站 2022-07-09 17:24:07
文章目录前言一、YUM仓库服务1.1YUM概述1.2YUM安装1.2.1软件仓库的提供方式1.2.2RPM软件包的来源1.2.3构建CentOS7软件仓库1.2.4在软件仓库中加入非官方RPM包组1.2.5配置软件仓库位置(客户机端)1.3YUM工具概述1.3.1关于YUM命令1.3.2YUM的配置文件1.3.3YUM缓存目录1.4软件包查询1.4.1查询软件包1.4.2查询软件包组1.5软件安装、升级、卸载1.5.1安装软件1.5.2升级软件1.5.3卸载软件1.6搭建本地YUM源1.7搭建远程YUM源环...

前言

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

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

一、YUM仓库服务

1.1YUM概述

  • YUM(Yellow dog Updater, Modified)
    基于RPM包构建的软件更新机制
    可以自动解决依赖关系
    所有软件包由几种的YUM软件仓库提供
    荐
                                                        在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务

1.2YUM安装

1.2.1软件仓库的提供方式

  • FTP服务:ftp://……
  • HTTP服务: http://……
  • 本地目录:file://……

1.2.2RPM软件包的来源

  • 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.3YUM工具概述

1.3.1关于YUM命令

  • 由软件包yum-3.4.3-150.el7.centos.noarch提供
  • 用来访问YUM仓库,查询、 下载及安装、卸载软件包

1.3.2YUM的配置文件

  • 基本设置: /etc/yum.conf
  • 仓库设置: /etc/yum.repos.d/*.repo
  • 日志文件: /var/log/yum.log

1.3.3YUM缓存目录

  • 存放下载的软件包、仓库信息等数据
  • 位于/var/cache/yum/$ basearch/$releasever
[root@localhost ~]# yum clean all          #清空缓存

1.4软件包查询

1.4.1查询软件包

yum list <软件包>               #查看软件列表
yum info <软件包>               #查看软件包详细信息
yum search <关键词>             #检查软件包的信息
yum whatprovides <关键词>       #查看文件/目录归属于哪个软件包

1.4.2查询软件包组

yum grouplist [包组名]
yum groupinfo [包组名]

1.5软件安装、升级、卸载

1.5.1安装软件

yum install [软件名]
yum group install [软件名]

1.5.2升级软件

yum updata         #既更新软件包,同时也更新系统内核
yum upgrade        #只更新软件包
yum groupupdata

1.5.3卸载软件

yum remove [软件名]

1.6搭建本地YUM源

在有网情况下我们可以直接联网使用YUM仓库,假如没有网呢?我们就需要搭建本地YUM源来安装软件包,下面我们就模拟没有网场景搭建YUM仓库

[root@localhost ~]# cd /etc/yum.repos.d/       #yum仓库的配置文件
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@localhost yum.repos.d]# mkdir bak        #创建bak目录
[root@localhost yum.repos.d]# mv *.repo bak    #将yum仓库的配置文件剪切到bak目录
[root@localhost yum.repos.d]# ls
bak
[root@localhost yum.repos.d]# ls bak
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@localhost yum.repos.d]# 
[root@localhost yum.repos.d]# yum list

荐
                                                        在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务

[root@localhost yum.repos.d]# yum install httpd -y     #安装Apache已无法安装
已加载插件: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>

我们在安装centos时已经将本地镜像挂载在光驱里了
荐
                                                        在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务

[root@localhost yum.repos.d]# mount /dev/cdrom /mnt          #挂载光盘
[root@localhost yum.repos.d]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  4.1G   46G    9% /
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  179M  836M   18% /boot
/dev/mapper/centos-home xfs       245G   37M  245G    1% /home
tmpfs                   tmpfs     378M  4.0K  378M    1% /run/user/42
tmpfs                   tmpfs     378M   40K  378M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt

荐
                                                        在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务

[root@localhost mnt]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim 123.repo      #手工搭建本地YUM源

[123]
name=base
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@localhost yum.repos.d]# yum list          #再次查看yum软件列表

荐
                                                        在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务

1.7搭建远程YUM源环境

创建两台虚拟机,一台作服务机,一台作客户机
荐
                                                        在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务
服务端配置:

[root@server ~]# mount /dev/cdrom /mnt     #挂载光盘
[root@server ~]# yum install vsftp* -y     #安装ftp服务
[root@server ~]# cd /var/ftp
[root@server ftp]# ls
pub
[root@server ftp]# mkdir centos7
[root@server ftp]# ls
centos7  pub
[root@server ftp]# cp -rf /mnt/* /var/ftp/centos7/ &           #将mnt下yum配置文件复制到centos7目录下
[root@server ftp]# createrepo -g /mnt/repodata/repomd.xml other/   #建立yum索引环境
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[1]+  完成                  cp -i -rf /mnt/* /var/ftp/centos7/
[root@server ftp]# iptables -F
[root@server ftp]# setenforce 0 
[root@server ftp]# systemctl start vsftpd        #启动ftp服务

客户端配置

[root@client ~]# yum install ftp -y
[root@client ~]# ftp 192.168.100.144
Connected to 192.168.100.144 (192.168.100.144).
220 (vsFTPd 3.0.2)
Name (192.168.100.144:root): ftp              #匿名登录不需要密码
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls                                        #可以查看到ftp中的目录文件
227 Entering Passive Mode (192,168,100,144,115,86).
150 Here comes the directory listing.
drwxr-xr-x    8 0        0             220 Jul 13 02:42 centos7
drwxr-xr-x    3 0        0              22 Jul 13 02:43 other
drwxr-xr-x    2 0        0               6 Apr 01 04:55 pub
226 Directory send OK.
[root@client ~]# cd /etc/yum.repos.d/          #到yum的配置文件中模拟断网情况
[root@client yum.repos.d]# mkdir bak
[root@client yum.repos.d]# mv *.repo bak
[root@client yum.repos.d]# vim 123.repo        #搭建远程yum仓库

[base]
name=centos7.Packages
baseurl=ftp://192.168.100.144/centos7
enabled=1
gpgcheck=1
gpgkey=ftp://192.168.100.144/centos7/RPM-GPG-KEY-CentOS-7

[other]
name=other.Packages
baseurl=ftp://192.168.100.144/other
enabled=1
gpgcheck=0
[root@client yum.repos.d]# yum clean all       #清空yum缓存
已加载插件:fastestmirror, langpacks
正在清理软件源: base other
Cleaning up list of fastest mirrors
Other repos take up 403 M of disk space (use --verbose for details)
[root@client yum.repos.d]# yum list         

荐
                                                        在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务

二、NFS共享存储服务

2.1NFS (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.100.0(rw,sync,no_root_squash)
/var/ftp/pub 192.168.179.10(ro) 192.179.50(rw)
  • 启动NFS服务程序
  • 查看本机发布的NFS共享目录
[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  
[root@localhost opt]# 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参数可以实现软挂载,允许在网络中断时放弃挂载。
  • 强制卸载NFS
    NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端NFS服务突然停掉了,那么在客户端就会出现df -h命令卡死的现象
    此时使用umount命令是无法直接卸载的,需要加上-lf才能卸载
    出现卡死现象时,需要重新打开一个终端,执行 cat/etc/rc.local命令,查看挂载点
    然后使用umount命令卸载,其中-l表示解除正在繁忙的文件系统,-f表示强制

2.4构建NFS服务

还是和上面一样,两台虚拟机,一台作服务机,一台作客户机,服务机添加一块硬盘做共享用
服务机配置

[root@server ~]# fdisk /dev/sdb            #将sdb磁盘分区
[root@server ~]# mkfs.xfs /dev/sdb1        #格式化sdb1
[root@server ~]# vim /etc/fstab            #永久挂载sbd1磁盘到/share
......
/dev/sdb1 /share xfs defaults 0 0
[root@server ~]# mount -a
[root@server ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  4.8G   46G   10% /
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  179M  836M   18% /boot
/dev/mapper/centos-home xfs       245G   37M  245G    1% /home
tmpfs                   tmpfs     378M   12K  378M    1% /run/user/42
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
/dev/sdb1               xfs        20G   33M   20G    1% /share
[root@server ~]# iptables -F
[root@server ~]# setenforce 0
[root@server ~]# yum install nfs-utils rpcbind -y    #安装nfs、pcbind服务
[root@server ~]# vim /etc/exports

/share 192.168.100.0/24(rw,sync,no_root_squash)
[root@server ~]# systemctl start rpcbind             #启动rpcbind服务
[root@server ~]# systemctl enable rpcbind            #开机自启rpcbind服务
[root@server ~]# systemctl start nfs                 #启动nfs服务
[root@server ~]# systemctl enable nfs                #开机自启nfs服务
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@server ~]# systemctl status nfs
[root@server ~]# netstat -ntap | grep rpc
[root@server ~]# showmount -e                        #查看发布的NFS共享目录
Export list for server:
/share 192.168.100.0/24

客户机配置

[root@client ~]# yum install httpd -y
[root@client ~]# iptables -F
[root@client ~]# setenforce 0
[root@client ~]# mount 192.168.100.144:/share /var/www/html/    #临时挂载服务机的/share文件夹到本机里的/var/www/html/ 文件夹
[root@client ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  4.8G   46G   10% /
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  179M  836M   18% /boot
/dev/mapper/centos-home xfs       245G   37M  245G    1% /home
tmpfs                   tmpfs     378M  4.0K  378M    1% /run/user/42
tmpfs                   tmpfs     378M   40K  378M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
192.168.100.144:/share  nfs4       20G   32M   20G    1% /var/www/html
[root@client ~]# vim /etc/fstab           #永久挂载服务机的/share文件夹到本机里的/var/www/html/ 文件夹
......
192.168.100.144:/share  /var/www/html   nfs     defaults,_netdev        0 0
[root@client ~]# cd /var/www/html/
[root@client html]# ls
[root@client html]# vim index.html          #在客户机创建网页

<h1>this is changlianliting web</h1>

服务机

[root@server ~]# cd /share/
[root@server share]# ls                     #可以看到服务机中的share文件夹有了刚刚创建的网页
index.html
[root@server share]# cat index.html 
<h1>this is changlianliting web</h1>

荐
                                                        在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务
客户机

[root@client html]# cd ~
[root@client ~]# umount /var/www/html/     #将共享挂载点卸载了
[root@client ~]# ls /var/www/html/         #创建的网页随之没有

荐
                                                        在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务
客户机

[root@client ~]# mount -a                    #再次挂载

服务机

[root@server share]# systemctl stop nfs      #停止nfs服务

服务机将nfs服务关闭后,在客户机中查看挂载点已无法查看
荐
                                                        在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务
客户机

[root@client ~]# umount -lf /var/www/html    #将挂载点强制卸载
[root@client ~]# df -Th                      #可以查看
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  4.8G   46G   10% /
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  179M  836M   18% /boot
/dev/mapper/centos-home xfs       245G   37M  245G    1% /home
tmpfs                   tmpfs     378M  4.0K  378M    1% /run/user/42
tmpfs                   tmpfs     378M   36K  378M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_6

这里要注意的是,输入强制卸载命令时是不可以tab补全命令的,使用tab补全会导致卡死,之后需要Ctrl+c强制关闭,再重新输入命令

本文地址:https://blog.csdn.net/weixin_47153988/article/details/107309620