本地yum仓库/http/ftp/nfs共享

131 阅读9分钟

1.yum仓库简介

1.1yum简介

  • yum是一个基于RPM包构建的软件更新机制,能够自动解决软件之间的依赖关系。

  • yum由仓库和客户端组成,也就是整个yum由两部分组成,,所以yum可以存放在两台服务器上。

1.2yum 实现过程

yum仓库里必须要有安装包

安装包:光驱(/dev/sr0)里自带的 ; 挂载提供软件包;

先在yum服务器上创建 yum repository(仓库)

在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)

当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据

查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。   

yum需要依赖于环境,依赖于服务端和客户端,允许跨网络

image.png

1.yum客户端根据配置文件找到yum服务端的仓库位置

2.下载元数据到yum客户端

3.yum客户端通过配置文件找到对应包的位置

4.将包下载到yum客户端本地

服务器:

  • RPM包 (Packages文件夹中)
  • 元数据(repodata文件夹:目录(软件的目录),软件的依赖关系,软件的位置)

仓库类型:

  • 光盘的仓库基本仓库 比较常用的
  • epel扩展仓库 比较新

2. yum配置文件及命令

2.1 yum配置文件

主配置文件

位置:/etc/yum.conf //主配置文件

仓库设置文件

位置:/etc/yum.repos.d/*.repo //yum仓库文件位置

日志文件

位置:/var/log/yum.log //日志文件

2.2 yum命令详解

yum list :

               不加关键词:显示所有可用包 
加关键词、软件包、软件包组:单个可安装包



image.png

yum info

               不加关键词: 显示所有可用包的信息   
加关键词、软件包、软件包组:单个具体的信息


image.png

yum search

              不加关键字:\ 
加入关键词、软件包、软件包组:模糊查找所有的相关信息

image.png

yum provides

                  不加关键字:\ 
 加入关键词、软件包、软件包组:精确查找

不知道安装包,只知道某个命令可用此方法查找

yum grouplist [包组名]

image.png

yum groupinfo <包组名>

不加包组名显示全部

image.png

yum安装升级

yum install [软件名]

安装软件包,如例子yum install安装http服务

image.png

yum groupinstall <包组名>
yum update
  • 更新包组,可以单个也可以全部 后面加具体包组名称就是单个更新,不加就是全部更新。

  • 但是首先你要有更新的包组库否则也无法更新。

image.png

软件卸载

无法彻底删除依赖关系

yum remove <软件名>

卸载已安装的软件必须加软件名

image.png

  • yum history 数字 redo(重新安装软件)
  • yum history 数字 undo(反悔卸载等于重新安装一遍)

image.png

搭建仓库的方式

本地yum仓库 没有网络的情况下, 光盘

软件仓库的提供方式

搭建阿里云

国外云仓库比较慢,可以使用阿里云仓库代替

1.切换到 yum.repo.d 目录 将自带的仓库移走

image.png

2.编写aliyun配置文件

image.png

编写内容如下

image.png

3.清理缓存

image.png

4.重新构建元数据

image.png

搭建本地yum仓库

本地yum仓库

  • 1.将光驱挂载到mnt挂载点,就能直接使用里面的软件包

image.png

  • 2.去本地yumcku,建立文件夹移走网络源减少干扰

image.png

  • 3.编写本地yum仓库配置文件

image.png

  • 编写内容如下

image.png

  • 4.清里缓存,重新构建元数据

image.png

本地yum仓库构建结束

http 内网建立yum仓库操作

服务端是有网络的,客户端是没网的,服务端依靠网络安装网页软件httpd,并且解决依赖关系,将光驱挂载,提供安装包.客户端直接搭建yum仓库,只需要将软件包来源指明:服务端的ip地址即可

操作过程

注意:关闭防火墙

1.服务端

  • yum -y install httpd (安装网页软件,提供文件共享服务)

image.png

  • mount /dev/sr0 /var/www/html (提供安装包)

image.png

  • systemctl start httpd (开启网页服务)

image.png

2.客户端

1.先cd 去本地yum仓库,建立文件夹,移走网络源

image.png

2.编写http仓库

image.png

编写如下:

image.png

4.清理缓存

image.png

5.重新构建元数据

image.png

ftp文件传输协议

FTP工作原理介绍

文件传输协议:File Transfer Protocol 早期的三个应用级协议之一,基于C/S结构

数据传输格式:二进制(默认)和文本

双通道协议:命令和数据连接 21 命令端口(权限,认证) 20数据端口(真实传数据)

两种模式:

主动模式:服务端主动开启20端口号连接客户端

被动模式:客户端通过命令端口得知当前服务端的随机端口号,之后进行连接。

用户认证:

  • 匿名用户:ftp,anonymous,对应Linux用户ftp
  • 系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow
  • 虚拟用户:特定服务的专用用户,独立的用户/密码文件

常见FTP相关软件

vsftpd:Very Secure FTP Daemon,CentOS 默认FTP服务器

高速,稳定,下载速度是WU-FTP的两倍

配置文件: /etc/vsftpd/vsftpd.conf

 vsftpd软件的基本操作

1.安装服务端

image.png

2.客户端连接服务端

image.png

image.png

3.登陆成功后可用查看一些帮助,命令

image.png

image.png

vsftpd服务常见配置

修改默认命令端口

vim /etc/vsftpd/vsftpd.conf

image.png

image.png

使用当地时间

use_localtime=YES 使用当地时间(默认为NO,使用GMT)

 匿名用户登录

image.png

匿名用户上传

  • anon_mkdir_write_enable=YES 匿名建目录

  • chmod 777 /var/ftp/pub

服务端中

[root@node2 pub]#vim /etc/vsftpd/vsftpd.conf

  • #此处是被注释开启就可以了

  • anon_upload_enable=YES

  • anon_mkdir_write_enable=YES

  • [root@node2 pub]#ll /var/ftp/pub/

  • #没权限写 ,在传文件时需要考虑 文件系统权限, 你是远程用户吧文件放在磁盘上,需要考虑文件系统的权限

  • #程序权限,文件系统权限

匿名用户下载删除文件

在 vsftpd 软件中 只可以 下载有 读权限的文件, 没有读权限的文件时不可以直接下载的需要修改下面的选项

  • anon_world_readable_only=NO 只能下载全部读的文件, 默认YES
  • anon_umask=0333 指定匿名上传文件的umask,默认077,注意:0333中的0不能省略
  • anon_other_write_enable=YES 可删除和修改上传的文件,默认NO

下载文件

  • p> lcd /opt 先传送到客户机opt文件夹下

  • Local directory now /opt

  • ftp> cd pub 再cd到服务机的文件夹下

  • 0 Failed to change directory.

  • ftp> get 123 下载服务机的文件到客户机的opt文件夹下

  • cal:123 remote:123

  • 7 Entering Passive Mode (192,168,223,100,36,24).

  • 0 Opening BINARY mode data connection for 123 (0 bytes).

  • 6 Transfer complete.

让每个用户拥有独有的配置

 [root@node2 pub]#vim /etc/vsftpd/vsftpd.conf
 user_config_dir=/etc/vsftpd/conf.d/ 
 #可以自由指定

针对 zhangsan  lisi  用户

[root@node2 data]#mkdir -p /etc/vsftpd/conf.d
#先建立好配置文件夹

#编写子配置文件
[root@node2 data]#vim    /etc/vsftpd/conf.d/lisi
local_root=/data/lisi
[root@node2 data]#vim   /etc/vsftpd/conf.d/zhangsan
local_root=/data/zhangsan


[root@node2 data]#mkdir -p /data/{zhangsan,lisi}
[root@node2 data]#touch  /data/zhangsan/zs.txt
[root@node2 data]#touch  /data/lisi/lisi.txt
 建立两个文件测试使用

vsftpd软件的基本操作

注意:关闭防火墙

image.png

1.服务端

1.安装vsftpd网页提供安装包

image.png

2.开启vsftpd网页服务

image.png

3.建立文件夹 并将光驱挂载到新建的文件夹下

image.png

2.客户端:

1.去客户端指定yum仓库

image.png

2.编写ftp 仓库

image.png

编写如下:

image.png

3.清理缓存

image.png

4.重新构建元数据

image.png

存储和NFS共享

存储类型分为三种

  • 直连式存储 : 简称DAS ;存储和主机是直连的,家用电脑,服务和硬盘直连,存储和主机在一台机器上
  • 网络附加存储 : 简称NAS;有一定距离,主机核存储设备距离先对较远 ,只提供空间不提供文件系统,管理等其他软件服务,只相当于多了一块硬盘
  • 存储区域网络 : 简称SAN;存储在远程,文件系统也在远程,这块空间,你可以直接访问上面的文件,你只能看到文件,文件共享NFS FTP 等都是NAS

NFS是什么

  • NFS(Network File System 网络文件服务) 文件系统(软件)文件的权限

  • NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。

  • 通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源,

  • NFS 也是 NAS 存储 设备必然支持的一种协议

NFS软件介绍

  • 软件包:nfs-utils(包括服务器和客户端相关工具,CentOS8 最小化安装时默认没有安装)

  • 相关软件包:rpcbind(必须),tcp_wrappers

  • Kernel支持:nfs.ko

端口:2049(nfsd), 其它端口由portmap(111)分配 NFS服务主要进程:

  • rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
  • rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
  • rpc.lockd 非必要,管理文件锁,避免同时写出错
  • rpc.statd 非必要,检查文件一致性,可修复文件

NFS配置文件:

  /etc/exports 
  /etc/exports.d/*.exports

NFS共享配置文件格式

/dir 主机1(opt1,opt2) 主机2(opt1,opt2)...

NFS工具

exportfs

exportfs:可用于管理NFS导出的文件系统

-v 查看本机所有NFS共享 
-r 重读配置文件,并共享目录 
-a 输出本机所有共享 
-au 停止本机所有共享

showmount

showmount -e hostname  

 [root@centos7 ~]#showmount -e 10.0.0.8
 Export list for 10.0.0.8:
 /data/wordpress *

mount.nfs

  • 客户端NFS挂载

  • NFS相关的挂载选项:man 5 nfs

    [root@centos7 ~]#mount 10.0.0.8:/data/wordpress /mnt/nfs 挂载命令 服务端ip地址 共享的文件 本机挂载点

NFS的文件共享操作

具体操作

1.先在服务机上下载nfs-utils软件

image.png

软件下载好后开启nfssystemctl start nfs

image.png

2.修改配置文件/etc/exports

image.png

image.png

3.刷新共享目录

image.png

重启nfs服务

image.png

4.远端客户机中下载nfs软件

image.png

5.挂载服务器的ip地址在本机的挂载点上

image.png

6.到挂载点中去查看文件

image.png