Linux部署YUM仓库及NFS共享服务
一、YUM仓库服务
1.YUM概述
- 基于RPM包构建的软件更新机制
- 可以自动解决依赖关系
- 所有软件包由集中的YUM软件仓库提供
2.部署YUM软件仓库
1.配置本地源
mount /dev/sr0 /mnt #挂载
cd /etc/yum.repos.d 进入yum仓库目录
mkdir repos.bak #创建备份网络源仓库
mv *.repo ./repos.bak #备份网络源
vim local.repo #编辑本地源文件
{
[local] #仓库类别
name=local #仓库名称
baseurl=file:///mnt #指定URL,访问路径为挂载目录
enabled=1 #开启自启动此源
gpgcheck=0 #不验证软件包签名
}
yum clean all && yum makecache #清除yum缓存并更新
2.配置ftp源
ftp源也就叫远程源,就是在ftp远程服务器上配置一个yum仓库,本地通过ftp访问服务器上的yum源然后下载所需软件。
服务端创建ftp源
客户端通过服务端用scp复制ftp.repo文件直接就可以下载软件包
3.配置在线yum源
3.1清华源
vim CentOS7-Base-tsinghua.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
3.2阿里云源
vim CentOS7-Base-aliyun.repo #编辑阿里云yum 网络源
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
4.创建源的优先级
当既有本地yum源又有aliyun源的时候,我们在装软件包的时候当然希望先用本地的yum源去安装,
本地找不到可用的包时再使用aliyun源去安装软件,这里就涉及到了优先级的问题,
yum提供的插件yum-plugin-priorities.noarch可以解决这个问题
1.查看是否安装了yum-plugin优先级插件
rpm -qa |grep yum-plugin-
2.如果没有安装,就安装插件
yum -y install yum-plugin-priorities.noarch
3.查看插件是否启用
cat /etc/yum/pluginconf.d/priorities.conf
[main]:
enabled = 1 # 1为启动,0 为禁止
4.修改本地yum源优先使用
vi local.repo
[local]
name=local
baseurl=file:///mnt/
enabled=1
gpgcheck=1
priority=1 #数字越小优先级越高
[epel]
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
enabled=1
gpgcheck=0
priority=2
5.验证安装包的数量
执行yum repolist all 可显示所有仓库包
//yum 命令仅下载安装包
方式一:
yum install --downloadonly mariadb --downloaddir=/opt
#下载下来的安装包默认放在 /var/cache/yum/x86_64/7/ 目录下
方式二:
yumdownloader --destdir=/opt mariadb mariadb-server --resolve
#yumdownloader 默认仅下载指定软件包,参数 --destdir 是用来指定存放下载的安装包的目录,--resolve 下载相关依赖包
createrepo 软件包目录 --> 创建软件包依赖关系索引表
二、NFS
1、NFS是什么?
NFS是一种基于TCP/IP传输的网络文件系统协议,最初由sun公司开发,通过NFS协议。客户机可以向访问本地目录一样访问远程NFS服务器中的共享资源。
NFS也是NAS存储设备必然支持的一种协议,但是因为没有用户认证机制,而且数据在网络上明文传输、安全性很差,所以一般只能在局域网中使用。
2、NFS服务的实现
NFS服务的实现依赖于RPC(Remote Process Call ,远程过程调用)机制,以完成远程到本地的映射过程,在centos 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。
NFS 端口号:2049
RPC 端口号:111
3、NFS服务的特点
- 采用TCP/IP传输网络文件
- 安全性低
- 简单易操作
- 适合局域网环境
4、NFS服务的作用
主要有两点(这两点都围绕了 共享 )
- 通过网络挂载共享存储空间,提高客户主机的存储空间
- 远程共享文件
5、NFS实验案例
5.1 在NFS服务器上操作
5.1.1 安装RPC依赖和nfs服务(rpcbind、nfs-utils)
5.1.2 修改配置文件( /etc/exports )
注意:这个配置文件内容时空的,表示没有任何共享。
创建共享目录
编辑配置文件
常用选项
选项 | 功能 |
---|---|
rw | 表示运允许读写 |
ro | 表示只读 |
sync | 表示同步写入到内存与磁盘中 |
no_root_squash | (不降权处理)表示当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户机无法在里面编辑或写入文件,因为默认以nfsnobody的权限 |
root_squash | 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户 |
其它常用选项
选项 | 功能 |
---|---|
all_sqush | 所有访问用户都映射为匿名用户或用户组 |
asyns | 将书记先保存在内存缓冲区中,必要时才写入磁盘,速度快但会数据丢失数据 |
subtree_chech | 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限 |
no_subtree_chech | 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率 |
5.1.3 开启服务并查看端口
注意:因为nfs服务需要依赖rpc服务,所以开启时,需要先开启rpcbind服务。
开启服务
查看端口
查看共享结果
5.1.4 注意
在前面使用查看看结果的命令(exportfs -v ),发现其中有权限为ro,导致后面我在客户机上的共享目录上无法创建文件,显示只读状态,后来我去查看配置文件(/etc/exports),发现里面的权限是rw并非ro,但是重新保存再去客户机还是无法创建文件,最后使用查看结果的命令发现,里面的权限存在只读的权限,与我的配置文件不一致,后来使用刷新命令(exportfs -r),最终权限改为读写。客户机可正常创建文件。
5.2 在客户机上操作
可在客户机上查看到服务器的共享信息
5.2.1 挂载
临时挂载
永久挂载
5.2.2 共享传输文件
在客户机的挂载目录上创建文件,在从服务器上读取
5.2.3 强制卸载NFS
NFS客户端与服务器端的耦合度非常高,如果客户端正在使用挂载目录,NFS服务突然挂掉,那么在客户端执行df -hT命令就会出现卡死现象
这个使用无法使用umount解挂载,需要将umount -lf 强制解挂载才行
当出现卡死现象时,要重新开一个终端,然后使用 umount 命令卸载,其中-l 选项表示解除正在繁忙的文件系统,-f 选项表示强制。
只要有关/data的目录的读取,都会出现卡死问题。
强制解挂载