Linux系统部署服务器yum仓库与nfs服务

一、部署YUM软件仓库

1、了解YUM软件仓库

YUM软件仓库通常借助于HTTP或FTP协议来进行发布,这样可以面向网络中的所有客户机提供 软件源服务。以便于客户机查询软件包,获取依赖关系等信息,在软件仓库中需要提供仓库数据(repodata),其中收集了目录下所有rpm包的头部信息。
借助与YUM软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,而无需管理员逐个、手工地去安装每一个rpm包,使管理源在维护大量Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台原服务器可以大大缓解软件安装、升级等对Internet的依赖。

2、构建YUM前系统环境

有两台Linux7.4版本的虚拟机,已经设置好了IP地址、网络已经连接能上网。防火墙和内核的核心防护都设置为关闭(重要)。系统的光盘以经设置自动挂载到**“/mnt”**目录下。服务器主机名设置为wu、IP:20.0.0.15,
客户机主机名设置为li、IP:20.0.0.16。登陆的用户均为root用户。

3、Linux系统构建YUM软件仓库

3.1、构建服务器端YUM软件仓库

1、准备软件仓库目录
在这里插入图片描述
在这里插入图片描述

2、安装并启用vsftpd服务
在这里插入图片描述
3、测试是否创建成功
在这里插入图片描述

3.2、构建客户端YUM软件仓库

1、创建仓库
在这里插入图片描述
2、编辑仓库

[centos]                         //仓库类别
name=CentOS             //仓库名称
baseurl=ftp://20.0.0.15/li   //访问仓库的方式和路径
gpgcheck=0                  //验证软件包的签名  0为不验证 1为验证
enabled=1                      //启用此软件仓库
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 //验证签名的公钥文件位置 ,这里使用#注释掉了,因为没有开启验证。
[other]
name=other
baseurl=ftp://20.0.0.15/ming
gpgcheck=0
enabled=1

3、测试仓库

[root@li ~]# yum clean all     //清楚仓库缓存
已加载插件:fastestmirror
正在清理软件源: centos other
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@li ~]# yum makecache   //建立新的仓库缓存
已加载插件:fastestmirror
centos                                                   | 3.6 kB     00:00     
other                                                    | 3.6 kB     00:00     
(1/8): centos/group_gz                                     | 156 kB   00:00     
(2/8): centos/filelists_db                                 | 3.1 MB   00:00     
(3/8): centos/other_db                                     | 1.2 MB   00:00     
(4/8): centos/primary_db                                   | 3.1 MB   00:00     
(5/8): other/group_gz                                      | 1.1 kB   00:00     
(6/8): other/filelists_db                                  |  586 B   00:00     
(7/8): other/other_db                                      |  575 B   00:00     
(8/8): other/primary_db                                    | 1.1 kB   00:00     
Determining fastest mirrors
元数据缓存已建立
[root@li ~]# yum -y install dhcp
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 dhcp.x86_64.12.4.2.5-58.el7.centos 将被 安装
--> 解决依赖关系完成

依赖关系解决

================================================================================
 Package     架构          版本                             源             大小
================================================================================
正在安装:
 dhcp        x86_64        12:4.2.5-58.el7.centos           centos        513 k

事务概要
================================================================================
安装  1 软件包

总下载量:513 k
安装大小:1.4 M
Downloading packages:
dhcp-4.2.5-58.el7.centos.x86_64.rpm                        | 513 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
  正在安装    : 12:dhcp-4.2.5-58.el7.centos.x86_64                          1/1 
  验证中      : 12:dhcp-4.2.5-58.el7.centos.x86_64                          1/1 

已安装:
  dhcp.x86_64 12:4.2.5-58.el7.centos                                            

完毕!   //安装完成  说明客户端连接使用了服务器端的YUM仓库

4、管理YUM仓库的的常用命令

4.1、yum list——查询软件包列表
[root@li ~]# yum list   //可以看到系统已经安装和未安装的软件
.......
xvattr.x86_64                                        1.3-27.el7                               centos   
xz-devel.x86_64                                      5.2.2-1.el7                              centos   
yajl.x86_64                                          2.0.4-4.el7                              centos   
yelp.x86_64                                          1:3.22.0-1.el7                           centos   
yelp-libs.x86_64                                     1:3.22.0-1.el7                           centos   
yelp-tools.noarch                                    3.18.0-1.el7                             centos   
yelp-xsl.noarch                                      3.20.1-1.el7                             centos   
yp-tools.x86_64                                      2.14-5.el7                               centos   
ypbind.x86_64                                        3:1.37.1-9.el7                           centos   
ypserv.x86_64                                        2.31-10.el7                              centos   
yum-langpacks.noarch                                 0.4.2-7.el7                              centos   
yum-plugin-aliases.noarch                            1.1.31-42.el7                            centos   
yum-plugin-changelog.noarch                          1.1.31-42.el7                            centos   
yum-plugin-tmprepo.noarch                            1.1.31-42.el7                            centos   
yum-plugin-verify.noarch                             1.1.31-42.el7                            centos   
yum-plugin-versionlock.noarch                        1.1.31-42.el7                            centos   
yum-utils.noarch                                     1.1.31-42.el7                            centos   
zenity.x86_64                                        3.22.0-1.el7                             centos   
zip.x86_64                                           3.0-11.el7                               centos   
zlib-devel.x86_64                                    1.2.7-17.el7                             centos   
zsh.x86_64                                           5.0.2-28.el7                             centos   
zziplib.x86_64                                       0.13.62-5.el7                            centos
4.2、yum info——查询软件包的描述信息
[root@li ~]# yum info httpd
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
已安装的软件包
名称    :httpd
架构    :x86_64
版本    :2.4.6
发布    :67.el7.centos
大小    :9.4 M
源    :installed
来自源:centos
简介    : Apache HTTP Server
网址    :http://httpd.apache.org/
协议    : ASL 2.0
描述    : The Apache HTTP Server is a powerful, efficient, and extensible
         : web server.
4.3、yum search——查询指定的软件包
[root@li ~]# yum search httpd
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
========================================= N/S matched: httpd ==========================================
httpd.x86_64 : Apache HTTP Server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications
mod_dav_svn.x86_64 : Apache httpd module for Subversion server

  名称和简介匹配 only,使用“search all”试试。
[root@li ~]# yum search all httpd
4.4、yum install、remove、update——安装、卸载、升级软件包

使用yum工具安装、升级、卸载软件包,分别通过子install、update、remove来完成,操作对象为指定的软件包名(可以有多个)。执行操作会自动检查并解决软件包之间的依赖关系,期间会提示用户按y键确认,可以在yum命令后添加“-y“选项。

[root@li ~]# yum -y install tftp      //安装软件
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 tftp.x86_64.0.5.2-13.el7 将被 安装
--> 解决依赖关系完成
......
已安装:
  tftp.x86_64 0:5.2-13.el7                                                                             
完毕!
[root@li ~]# yum -y remove dhcp     //卸载软件
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 dhcp.x86_64.12.4.2.5-58.el7.centos 将被 删除
--> 解决依赖关系完成
......
删除:
  dhcp.x86_64 12:4.2.5-58.el7.centos                                                                   
完毕!
[root@li ~]# yum -y update tftp   //更新软件
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
No packages marked for update    //已经是最新的,没有要更新的包

二、NFS共享存储服务

1、NFS的应用和使用场景

NFS是一种基于TCP/IP传输的网络文件系统协议,通过使用NFS协议,NFS客户机可以向访问本地目录一样访问远程NFS服务器中的共享资源。对于大多数负载均衡集群来说,使用NFS协议来共享数据存储是比较常见的作法,NFS也是NAS存储设备必然支持的一种协议。但是,NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。
在企业集群架构的工作场景中,特别是中小型网站公司,NFS网络文件系统一般被用来存储共享视频、图片等静态资源文件,例如把网站上的用户上传的文件放到NFS共享里,通过网络共享目录,让网络上其他的服务器能够挂载访问共享目录内的数据。
NFS服务的实现依赖于RPC(RemoteProcess Call,远端过程调用)机制,RPC充当NFS客户端和NFS服务器的中介,已完成远程到本地的映射过程。 在Linux系统中,需要安装nfs-utils、rpcbing软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。

2、部署前系统环境

有两台Linux7.4版本的虚拟机,已经设置好了IP地址、网络已经连接能上网。防火墙和内核的核心防护都设置为关闭(重要)。系统的光盘以经设置自动挂载到**“/mnt”**目录下。服务器主机名设置为wu、IP:20.0.0.15,
客户机主机名设置为li、IP:20.0.0.16。登陆的用户均为root用户。

3、服务器端NFS部署

3.1、安装服务需要的软件(nfs-utils、rocbind)包
[root@li ~]# yum -y install nfs-utils rpcbind
已加载插件 :fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 nfs-utils.x86_64.1.1.3.0-0.48.el7 将被 安装
--> 正在处理依赖关系 libtirpc >= 0.2.4-0.7,它被软件包 1:nfs-utils-1.3.0-0.48.el7.x86_64 需要
--> 正在处理依赖关系 gssproxy >= 0.7.0-3,它被软件包 1:nfs-utils-1.3.0-0.48.el7.x86_64 需要
--> 正在处理依赖关系 quota,它被软件包 1:nfs-utils-1.3.0-0.48.el7.x86_64 需要
--> 正在处理依赖关系 libnfsidmap,它被软件包 1:nfs-utils-1.3.0-0.48.el7.x86_64 需要
--> 正在处理依赖关系 libevent,它被软件包 1:nfs-utils-1.3.0-0.48.el7.x86_64 需要
--> 正在处理依赖关系 keyutils,它被软件包 1:nfs-utils-1.3.0-0.48.el7.x86_64 需要
--> 正在处理依赖关系 libtirpc.so.1()(64bit),它被软件包 1:nfs-utils-1.3.0-0.48.el7.x86_64 需要
--> 正在处理依赖关系 libnfsidmap.so.0()(64bit),它被软件包 1:nfs-utils-1.3.0-0.48.el7.x86_64 需要
--> 正在处理依赖关系 libevent-2.0.so.5()(64bit),它被软件包 1:nfs-utils-1.3.0-0.48.el7.x86_64 需要
---> 软件包 rpcbind.x86_64.0.0.2.0-42.el7 将被 安装
......     //省略部分内容
已安装:
  nfs-utils.x86_64 1:1.3.0-0.48.el7                    rpcbind.x86_64 0:0.2.0-42.el7                   

作为依赖被安装:
  gssproxy.x86_64 0:0.7.0-4.el7                       keyutils.x86_64 0:1.5.8-3.el7                   
  libbasicobjects.x86_64 0:0.1.1-27.el7               libcollection.x86_64 0:0.6.2-27.el7             
  libevent.x86_64 0:2.0.21-4.el7                      libini_config.x86_64 0:1.3.0-27.el7             
  libnfsidmap.x86_64 0:0.25-17.el7                    libpath_utils.x86_64 0:0.2.1-27.el7             
  libref_array.x86_64 0:0.1.5-27.el7                  libtirpc.x86_64 0:0.2.4-0.10.el7                
  libverto-libevent.x86_64 0:0.2.5-4.el7              quota.x86_64 1:4.01-14.el7                      
  quota-nls.noarch 1:4.01-14.el7                      tcp_wrappers.x86_64 0:7.6-77.el7                
完毕!
[root@li ~]# 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@li ~]# systemctl enable rpcbind             //设置开机自启
3.2、设置共享目录
[root@li ~]# mkdir -p /opt/wode   //创建一个目录
[root@li ~]# vi /etc/exports   //在exports文件中设置共享文件权限
/opt/weode 20.0.0.0/24(rw,sync,no_root_squash)
//格式为“目录位置  客户机地址  (选项权限)”权限选项中r表示可读,w表示可写,rw表示可读写,sync表示同步写入,no_root_squash表示客户机以root身份访问时赋予本地root权限。
3.3、启动NFS服务
[root@li ~]# systemctl restart nfs      //重启服务
[root@li ~]# systemctl restart rpcbind  //重启服务
3.4、查看本机发布的NFS共享目录
[root@li ~]# showmount -e
Export list for li:
/opt/weode 20.0.0.0/24     //查看到的共享目录

4、客户端访问NFS服务的部署

4.1、安装服务需要的软件(nfs-utils、rocbind)包
[root@wu ~]# yum -y install nfs-utils rpcbind   //安装程序
[root@wu ~]# systemctl start nfs    //启动程序
[root@wu ~]# systemctl enable nfs    //设置开机自启
[root@wu ~]# systemctl start  rpcbind
[root@wu ~]# systemctl enable  rpcbind
4.2、挂载NFS共享目录(手动挂载和自动挂载)
[root@wu ~]# [root@wu opt]# mkdir /var/tade
[root@wu ~]# mount 20.0.0.15:/opt/wode /var/tade    //手动挂载
[root@wu ~]# df -Th   
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        17G  5.2G   12G   31% /
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G  8.6M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt
/dev/sda1               xfs      1014M  143M  872M   15% /boot
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
20.0.0.15:/opt/wode     nfs4       17G 1006M   17G    6% /var/tade   //挂载成功   
      
[root@wu opt]# vi /etc/fstab
......                   //省略部分信息
20.0.0.15:/opt/wode  /var/tade  nfs defaults,_netdev 0 0//自动挂载
4.3、测试NFS服务
在客户端挂载的目录中测试
[root@wu opt]# vi /var/tade/ceshi   //创建编辑文件li
测试成功   //编辑文件内容
~

服务器端查看是否共享成功
[root@li]# cd /opt/wode
[root@li wode]# ll
总用量 4
-rw-r--r-- 1 root root 13 8月   4 23:06 ceshi
[root@li wode]# vi ceshi 
测试成功
~               //NFS共享成功

5、NFS常见故障解决思路

  • 当NFS共享无法挂载使用时,首先要检查配置文件的正确性,查看是否允许该网段的访问。然后将服务端的NFS服务和rpcbind服务都要开启,同时客户端也要开启rpbind服务,这是能够成功挂载使用NFS共享存储的大前提。
  • 在两边服务都要开启的情况下,如果客户端挂载共享存储出现长时间挂载等待的情况,此时要ping服务器的地址,检测客户端到服务器端的网络是否正常。
  • 如果客户端到服务器端的网络是没有问题的,但还是无法mount挂载使用,可以使用telent命令加服务器端的地址和端口号,远程连接服务器。当出现“connected to…"的字样时,表示已经连上了。这就表示客户端与客户端时通的。
  • 客户端无法正常访问服务器端,也有可能是iptables导致的,使用telent命令连接服务器时会显示“no route to host"的字样,这就表示是防火墙的问题。在服务器端本地telnet自己,如果正常就表示服务器端是没有问题的。
  • 也可以使用showmount -e 命令检查,或者是在服务端mount挂载自己本地共享的目录看能否挂载成功。

猜你喜欢

转载自blog.csdn.net/wulimingde/article/details/107714200