Linux网络服务--部署YUM仓库及NFS共享服务

文章目录

  • 一、YUM仓库服务
    • 1.1 部署YUM软件仓库
      • 1.1.1 YUM概述
      • 1.1.2 准备网络安装源(服务器端)
      • 1.1.3 访问YUM仓库
      • 1.1.4 本地YUM仓库
      • 1.1.5 构建本地源环境实验
        • 构建环境
        • 实验过程
      • 1.1.6 构建ftp源环境实验(远程)
        • 构建环境
        • 实验过程
          • 服务端配置
          • 客户端配置
    • 1.2 使用YUM工具管理软件包
      • 1.2.1 yum工具概述
      • 1.2.2 软件包查询
      • 1.2.3 软件安装升级与卸载
  • 二、NFS共享存储服务
    • 2.1 使用NFS发布共享资源
      • 2.1.1 NFS(Network File System)网络文件系统
    • 2.3 使用NFS发布共享资源
    • 2.4 在客户机中访问NFS共享资源
    • 2.5 构建NFS实验
      • 实验环境
      • 实验过程

一、YUM仓库服务

1.1 部署YUM软件仓库

1.1.1 YUM概述

YUM(Yellow dog Updater, Modified)

  • 基于RPM包构建的软件更新机制

  • 可以自动解决依赖关系

  • 所有软件包由几种的YUM软件仓库提供

Linux网络服务--部署YUM仓库及NFS共享服务_第1张图片

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

软件仓库的提供方式

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

RPM软件包的来源

  • CentOS发布的RPM包集合
  • 第三方组织发布的RPM包集合
  • 用户自定义的RPM包集合

构建CentOS7软件仓库

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

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

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

1.1.3 访问YUM仓库

为客户机指定YUM仓库位置

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

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

  • 将CentOS7光盘放入光驱

  • 挂载镜像到仓库位置,URL地址为file:///media/cdrom

1.1.4 本地YUM仓库

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

  • 将CentOS7光盘放入光驱

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

1.1.5 构建本地源环境实验

构建环境

VMware 软件
centos7虚拟机一台

实验过程

1、挂载光盘镜像

[root@localhost ~]# hostnamectl set-hostname server   '修改主机名为server'
[root@localhost ~]# su  
[root@server ~]# mount /dev/sr0 /mnt   '将镜像挂载到本地/mnt,cdrom为sr0的软链接,sr0可以替换成cdrom'
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server ~]# df -Th   '查看挂载'
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  5.3G   45G   11% /
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/sr0                iso9660   4.3G  4.3G     0  100% /mnt
'文件在/mnt/Packages/目录下'

2、创建本地源仓库

[root@server Packages]# cd /etc/yum.repos.d/
[root@server yum.repos.d]# ls
backup 
[root@server yum.repos.d]# vim local.repo  '自己创一个仓库文件'
[base]   '仓库类别'
name=centos 7   '仓库名称(说明)'
baseurl=file:///mnt   '定义软件源,file为本地,URL 访问路径'
enabled=1  '开启yum仓库'
gpgcheck=0   '不检查软件包序列'

3、这时可以安装软件包

[root@server yum.repos.d]# yum -y install httpd   '安装apache软件包'

1.1.6 构建ftp源环境实验(远程)

构建环境

VMware 软件
centos7虚拟机两台

实验过程

服务端配置

1、挂载光盘镜像

[root@localhost ~]# hostnamectl set-hostname server    '设置主机名为server'
[root@localhost ~]# su   '切换'
[root@server ~]# 

[root@server ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  5.3G   45G   11% /
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   32K  378M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt

2、安装vsftpd服务

[root@server ~]# yum install vsftp* -y

'找到ftp站点'
[root@server ~]# ls /var
account  cache  db     ftp    gopher    lib    lock  mail  opt       run    target  yp
adm      crash  empty  games  kerberos  local  log   nis   preserve  spool  tmp
[root@server ~]# cd /var/ftp

3、创建一个专门的目录centos7,然后把/mnt下所有软件包都复制到centos7中

[root@server ftp]# mkdir centos7
[root@server ftp]# ls
centos7  pub
[root@server ftp]# cp -rf /mnt/* /var/ftp/centos7/ &    '把/mnt下所有软件包都复制到centos7中,后台运行'
[1] 15570
[root@server ftp]# jobs   
[1]+  运行中               cp -i -rf /mnt/* /var/ftp/centos7/ &
[root@server ftp]# ls
centos7  pub
[1]+  完成                  cp -i -rf /mnt/* /var/ftp/centos7/

4、建立yum索引环境

[root@server ftp]# mkdir other
[root@server ftp]# ls
centos7  other  pub
[root@server ftp]# createrepo -g /mnt/repodata/repomd.xml other/   '写入索引'
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@server ftp]# ls
centos7  other  pub
[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

5、开启ftp服务

[root@server ftp]# setenforce 0   '关闭系统核心防护'
[root@server ftp]# iptables -F    '清空防火墙规则'
[root@server ftp]# systemctl start vsftpd   '开启ftp服务'
客户端配置

1、测试访问ftpf服务
yum install ftp
ftp 192.168.195.88

[root@localhost ~]# hostnamectl set-hostname client
[root@localhost ~]# su
[root@client ~]# 

[root@client ~]# yum install ftp -y
[root@client ~]# ftp 20.0.0.41
Connected to 20.0.0.41 (20.0.0.41).
220 (vsFTPd 3.0.2)
Name (20.0.0.41:root): ftp    'name输入ftp'
331 Please specify the password.
Password:    '回车'
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 
ftp> bye   '退出'
221 Goodbye.

[root@client ~]# cd /etc/yum.repos.d 
[root@client yum.repos.d]# ls
[root@client yum.repos.d]# mkdir bak
[root@client yum.repos.d]# mv *.repo bak/    '把/etc/yum.repos.d下的所有以.repo结尾的文件移到创建的bak下'
[root@client yum.repos.d]# ls
Bak
[root@client yum.repos.d]# yum list
'此时用yum install是安装不了软件的,源环境要重新构建这个源,指定远程'

2、配置repo仓库文件

[root@client yum.repos.d]# vim abc.repo
[base]
name=centos7.Packages
baseurl=ftp://20.0.0.41/centos7
enabled=1
gpgcheck=1
gpgkey=ftp://20.0.0.41/centos7/RPM-GPG-KEY-CentOS-7   'RPM-GPG-KEY-CentOS-7从服务端:cd /var/ftp,ls centos7底下复制粘贴'

[other]
name=other.Packages
baseurl=ftp://20.0.0.41/other
enabled=1
gpgcheck=0
[root@client yum.repos.d]# yum list    '重新加载'
'然后就可以安装软件包了'
[root@client yum.repos.d]# yum install httpd -y    

1.2 使用YUM工具管理软件包

1.2.1 yum工具概述

关于yum命令

  • 由软件包yum-…提供
  • 用来访问yum仓库,查询,下载及安装,卸载软件包

yum的配置文件

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

yum缓存目录

  • 存放下载的软件包,仓库信息等数据
  • 位于/var/cache/yum/basearch(硬件架构,如x8664)/basearch(硬件架构,如x86_64)/basearch(硬件架构,如x86
    64)/releasever(OS版本)
[root@localhost ~]# yum clean all
  • yum安装报错:
    • 清空缓存:yum clean all,很好使,排除故障
    • yum list 重新加载

1.2.2 软件包查询

查询软件包

  • yum list [软件名]
  • yum info [软件名]
  • yum search <关键词>
  • yum whatprovides <关键词>

查询软件包组

  • yum grouplist [包组名]
  • yum groupinfo <包组名>

1.2.3 软件安装升级与卸载

安装软件

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

升级软件

  • yum update

  • yum groupdate

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

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

卸载软件

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

二、NFS共享存储服务

2.1 使用NFS发布共享资源

2.1.1 NFS(Network File System)网络文件系统

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

第一个存储网络服务
如:网咖

2.3 使用NFS发布共享资源

安装nfs-utils,rpcbind软件包

  • 提供RPC支持的服务为rpcbind,提供NFS共享的服务为nfs,安装完成后建议调整为开机自启动状态
  • 手动加载NFS共享服务时,应先启动rpcbind,然后在启动nfs
[root@localhost opt]# yum -y install nfs-utils rpcbind
[root@localhost opt]# systemctl enable nfs
[root@localhost opt]# systemctl eable rpcbind

设置共享目录

  • 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)
/var/ftp/pub 192.168.100.188(ro) 192.168.100.120(rw)
'rw能读能写,sync同步功能,no_root_squash 远程登录时不会被降权(root跑到另外一个系统中不会降权,还是root)'
'/var/ftp/pub 站点目录    ro只读   rw读写'

启动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:*              

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

showmount -e

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

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

  • 若要正常访问NFS共享资源,客户机中也需要安装rpcbind软件包,并启动rpcbind服务
  • 为了可以使用showmount查询工具,建议将nfs-utils软件包也一并装上
  • 使用 “showmount -e 服务器地址”可以查看NFS服务器端共享了那些目录
[root@server ~]# yum install nfs-utils rpcbind -y
[root@server ~]# systemctl enable rpcbind.service 
[root@server ~]# systemctl start rpcbind.service 
[root@server ~]# showmount -e 

手动挂载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文件夹,其中的网络映射过程对于用户程序来说是透明的
[root@client ~]# mount 192.168.197.173:/mnt /var/www/html

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表示强制
[root@localhost ~]# umount /mnt umount. nfs: /mnt : device is busy [root@localhost ~]# umount -lf /mnt
[root@localhost ~]#

2.5 构建NFS实验

实验环境

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

实验过程

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

客户端修改
[root@localhost ~]# hostnamectl set-hostname client
[root@localhost ~]# su
[root@client ~]# 
服务器端修改
[root@localhost ~]# hostnamectl set-hostname server
[root@localhost ~]# su
[root@server ~]# 

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

格式化磁盘步骤省略,如有疑问查看我之前博客
[root@server ~]# vim /etc/fstab
[root@server ~]# mount -a
[root@server ~]# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs        20G  4.1G   16G  21% /
devtmpfs       devtmpfs  898M     0  898M   0% /dev
tmpfs          tmpfs     912M     0  912M   0% /dev/shm
tmpfs          tmpfs     912M  9.0M  903M   1% /run
tmpfs          tmpfs     912M     0  912M   0% /sys/fs/cgroup
/dev/sda5      xfs        10G   52M   10G   1% /home
/dev/sda1      xfs       6.0G  174M  5.9G   3% /boot
tmpfs          tmpfs     183M  8.0K  183M   1% /run/user/42
tmpfs          tmpfs     183M     0  183M   0% /run/user/0
/dev/sdb1      xfs        20G   33M   20G   1% /mnt

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

[root@server ~]# yum install nfs-utils rpcbind -y
[root@server ~]# systemctl enable 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 enable rpcbind.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/rpcbind.service to /usr/lib/systemd/system/rpcbind.service.

第四步:设置共享目录,启动服务并关闭防护墙

[root@server ~]# vim /etc/exports
/mnt    192.168.197.0/24(rw,sync,no_root_squash)
[root@server ~]# systemctl start nfs
[root@server ~]# systemctl start rpcbind
[root@server ~]# netstat -ntap | grep rpc
tcp        0      0 0.0.0.0:35312           0.0.0.0:*               LISTEN      14124/rpc.statd     
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      14125/rpc.mountd    
tcp6       0      0 :::20048                :::*                    LISTEN      14125/rpc.mountd    
tcp6       0      0 :::58102                :::*                    LISTEN      14124/rpc.statd  
[root@server ~]# systemctl stop firewalld.service 
[root@server ~]# setenforce 0

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

[root@server ~]# showmount -e
Export list for server:
/mnt 192.168.197.0/24

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

[root@client ~]# systemctl stop firewalld.service 
[root@client ~]# setenforce 0
[root@client ~]# yum install httpd -y

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

[root@client ~]# mount 192.168.197.173:/mnt /var/www/html
[root@client ~]# df -hT
Filesystem           Type      Size  Used Avail Use% Mounted on
/dev/sda2            xfs        20G  4.1G   16G  21% /
devtmpfs             devtmpfs  898M     0  898M   0% /dev
tmpfs                tmpfs     912M     0  912M   0% /dev/shm
tmpfs                tmpfs     912M  9.0M  903M   1% /run
tmpfs                tmpfs     912M     0  912M   0% /sys/fs/cgroup
/dev/sda5            xfs        10G   37M   10G   1% /home
/dev/sda1            xfs       6.0G  174M  5.9G   3% /boot
tmpfs                tmpfs     183M   12K  183M   1% /run/user/42
tmpfs                tmpfs     183M     0  183M   0% /run/user/0
192.168.197.173:/mnt nfs4       20G   32M   20G   1% /var/www/html

[root@client ~]# umount /var/www/html
[root@client ~]# vim /etc/fstab
192.168.197.173:/mnt    /var/www/html   nfs     defausts,_netdev        0 0
[root@client ~]# mount -a
[root@client ~]# df -hT
Filesystem           Type      Size  Used Avail Use% Mounted on
/dev/sda2            xfs        20G  4.1G   16G  21% /
devtmpfs             devtmpfs  898M     0  898M   0% /dev
tmpfs                tmpfs     912M     0  912M   0% /dev/shm
tmpfs                tmpfs     912M  9.0M  903M   1% /run
tmpfs                tmpfs     912M     0  912M   0% /sys/fs/cgroup
/dev/sda5            xfs        10G   37M   10G   1% /home
/dev/sda1            xfs       6.0G  174M  5.9G   3% /boot
tmpfs                tmpfs     183M   12K  183M   1% /run/user/42
tmpfs                tmpfs     183M     0  183M   0% /run/user/0
192.168.197.173:/mnt nfs4       20G   32M   20G   1% /var/www/html

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

[root@client ~]# cd /var/www/html
[root@client html]# ls
[root@client html]# vim index.html

this is nfs web

[root@client html]# systemctl start httpd.service 用客户端的网址登陆

在网页中测试
Linux网络服务--部署YUM仓库及NFS共享服务_第2张图片
第九步:发现服务器端也有了刚刚配置的内容

[root@server ~]# cd /mnt
[root@server mnt]# ls
index.html
[root@server mnt]# cat index.html 

this is nfs web

第十步:设置服务器端NFS服务断掉,开始强制卸载

[root@server mnt]# systemctl stop nfs
[root@server mnt]# 
'发现客户端使用df -hT 卡死'

你可能感兴趣的:(Linux网络服务)