YUM仓库以及NFS服务的建立


前言

yum概述

YUM (Yellow dog Updater Moddified)

基于 RPM 包构建的软件更新机制
可以自动解决依赖关系
所以软件包由集中的YUM软件仓库提供

软件仓库的提供方式

FTP服务:  ftp://…

HTTP服务:  http://…

本地目录:  file://…

CentOS发布的RPM包集合

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

yum配置文件

基本设置

位置:/etc/yum.conf

[root@localhost]# /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever    ###yum下载的RPM包的缓存目录 $basearch代表硬件 $releasever系统版本比如7
keepcache=0                                      ###是否保存缓存  0代表不保存,1代表保存
debuglevel=2                                     ###调试级别了解即可
logfile=/var/log/yum.log					     ###日志文件位置
exactarch=1								         ###是否允许不同版本的rpm安装
obsoletes=1									     ###update 的一个参数是否可以允许旧版本的运行	
gpgcheck=1                                       ###验证秘钥
plugins=1                                        ###是否允许插件1代表可以
installonly_limit=5                              ###保存几个内核 5代表5个
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

仓库设置文件

位置:/etc/yum.repos.d/*.repo

[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo

日志文件

位置:/var/log/yum.log

[root@localhost ~]# cat /var/log/yum.log 
Jan 13 21:20:29 Updated: rpcbind-0.2.0-49.el7.x86_64
Jan 13 21:20:30 Updated: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64
Jan 13 21:37:14 Installed: httpd-tools-2.4.6-97.el7.centos.2.x86_64
Jan 13 21:37:14 Installed: mailcap-2.1.41-2.el7.noarch
Jan 13 21:37:15 Installed: httpd-2.4.6-97.el7.centos.2.x86_64

yum命令

查询软件包命令

#显示可用的安装包
[root@localhost ~]# yum list httpd
 
#显示安装包详细信息
[root@localhost ~]# yum info  [软件名]

查询软件包组命令

#安装包组的查询 不加包组名 就是显示所有
[root@localhost ~]#yum grouplist  [包组名]
 
#不加包组名显示全部
[root@localhost ~]# yum groupinfo  <包组名>

yum安装升级

#安装软件包
[root@localhost ~]# yum install httpd
 
#安装包组名
[root@localhost ~]# yum groupinstall gnome desktop
 
#更新安装包,可以单个也可以全部 后面加具体名称就是单个更新,不加就是全部更新。但是首先你要有更新的包组库否则也无法更新。
[root@localhost yum.repos.d]# yum upgrade 
 
#组包更新
[root@localhost yum.repos.d]# yum groupupdate 

软件卸载

#卸载已安装的软件必须加软件名
[root@localhost yum.repos.d]# yum remove httpd
 
#查看历史的使用记录,选择ID 12345,可以使用yum history undo 4 进行卸载,这样对比remove好处是可以将所有的依赖都删除
[root@localhost yum.repos.d]# yum history 
[root@localhost .ssh]#  yum history undo 3 //3代表id号
 
#如果后悔 卸载 可以使用两种方式
 
yum history redo 4 (重新安装一遍)
 
yum history undo 6 (反悔卸载等于重新安装一遍)

搭建yum仓库

搭建本地yum仓库

将光驱中的镜像文件进行挂载

[root@localhost ~]# mount /dev/cdrom /mnt/    ###把光盘挂载到/mnt目录下

[root@localhost ~]# df -Th                  ###查看磁盘挂载情况

切换到 yum.repo.d 目录 将自带的源仓库移走 避免冲突

[root@localhost ~]# cd /etc/yum.repos.d        ###切换至cd /etc/yum.repos.d

[root@localhost yum.repos.d]# mkdir repos.bak  ###创建一个文件夹,名为repos.bak

[root@localhost yum.repos.d]# mv *.repo repos.bak   ###把自带以.repo结尾的源,转移到新建的repos.bak文件夹下

新建yum仓库文件

[root@localhost yum.repos.d]# vim local.repo   ###新建yum仓库文件

[local]							###仓库类别
name=local						###仓库名称
baseurl=file:///mnt				###指定URL 访问路径为光盘挂载目录(第三个“/”代表根)
enabled=1						###开启此yum源,此为默认项,可省略
gpgcheck=0						###不验证软件包的签名

删除yum缓存并更新

[root@localhost yum.repos.d]# yum clean all && yum makecache		###删除yum缓存并更新

验证

[root@localhost ~]# yum install -y httpd 

ftp方式搭建云仓库

服务端:192.168.146.30

客户端:192.168.146.40

服务端安装vsftp服务

[root@localhost ~]# yum install -y  vsftpd

服务端切换到 ftp目录下创建一个目录

服务端将光驱文件拷贝到 centos7 中

[root@localhost ~]# mkdir  /var/ftp/centos7
 
[root@localhost ~]# mount  /dev/sr0  /mnt

[root@localhost ~]# cp -rf  /mnt/*  /var/ftp/centos7/ &

[root@localhost ~]# mkdir /var/ftp/other

[root@localhost ~]# cd /var/ftp/other

[root@localhost other]# createrepo  -g   /mnt/repodata/repomd.xml  ./

服务端开启相关服务,关闭防火墙

[root@localhost other]# systemctl stop firewalld.service 

[root@localhost other]# setenforce 0

[root@localhost other]# systemctl start vsftpd

客户端配配置

[root@localhost ~]# cd /etc/yum.repo.d

[root@localhost yum.repo.d]# mkdir bak.repo 

[root@localhost yum.repo.d]# mv CentOS-*  bak.repo

[root@localhost yum.repo.d]# vim centos7.repo

[centos7]
named=centos7
baseurl=ftp://192.168.146.30/centos7
enabled=1
gpgcheck=1
gpgkey=ftp://192.168.146.30/centos7/RPM-GPG-KEY-CentOS-7

[other]
name=centos7
baseurl=ftp://192.168.146.30/other
enabled=1
gpgcheck=0                     

清理缓存、更新并验证

[root@localhost ~]# yun clean all &&  yum makecache

验证:
[root@localhost ~]# yum install -y httpd 

NFS网络文件服务

NFS (网络文件服务)

NFS是一种基于TCP/IP传输的网络文件系统协议,最初由 sun公司开发。通过使用NES协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源
NFS 也是NAS 存储设备必然支持的一种协议

NAS存储

NFS 服务的实现依赖于RPC ( Remote Processcall,远端过程调用)机制,以完成远程到本地的映射过程。在centos 7系统中,需要安装nfs-utils、 rpcbind软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。手动加载NFs共享服务时,应该先启动rpcbind,再启动nfs。

端口号

nfs端口号2049
RPC瑞口号111

特点

  • 采用TCP/IP传输网络文件
  • 安全性低
  • 简单易操作
  • 适合局域网环境

常用选项

rw 表示允许读写
ro 表示为只读
sync 表示司步写入到内存与硬盘中
no_root_squash 表示 当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限
root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成置名用户

其它常用选项

all_squash 所有访问用户都l映射为[匿名用户或用户组
async 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no subtree_check
即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

多台机器同时访问

实验要求:1台NFS服务器 3台客户机可以同时访问并且获得相同的页面

  • 实验步骤:

安装nfs和rpcbind软件修改配置文件设置共享创建共享目录
开启服务
客户端验证共享目录可访问

在服务器上进行配置

rpm -q rpcbind nfs-utils
yum install -y nfs-utils rpcbind

vim /etc/exports                  
  #NFS的配置文件为/etc/exports,文件内容默认为空.(无任何共享)
/ opt/web 192.168.10.0/24 (rw, sync,no_root_squash)

systemctl start rpcbind         
###需要先启动rpc服务,[因为nfs要向rpc注册端口

systemctl start nfs
systemctl  enable rpcbind

systemctl  enable  nfs

[ root@localhost web] #netstat -anpu l  grep rpc
udp     0              0 0.0.0.0 : 111                              0.0.0.0:*
24525/ rpcbind

[ root@localhost web] # rpcinfo -p localhost                    
###查看nfs向rpc注册的端口信息

program vers proto    port   service
100000   4   tcp   111   portmapper
100000   3   tcp   111   portmapper
100000   2   tcp   111   portmapper
100000   4   udp  111   portmapper
100000   3    udp  111   portmapper
100000   2    udp  111   portmapper
100024    l    udp 55627   status

[ root@localhost web]# exportfs -v                        ##验证结果

/web
192.168.245.0/24(sync, wdelay, hide, no_subtree_check , sec=sys,rw,secure, no_root_squash,no_all_squash)

exportfs -r//刷新结果

[root@localhost web]# showmount -e localhost      //验证共享
Export list for localhost:      / web 192.168.245.0/24

切换到客户端上进行配置

[root@localhost ~]# yum insall -y nfs-utils rpcbind
[ root@localhost ~]# showmount -e 192.168.10.17//'客户端验证共享Export list for 192.168.245.100:
/ web 192.168.245.0/24

[ root@localhost ~] # yum -y install httpd

[root@localhost ~]# systemctl start httpd     ##启动web服务

统一配置
[root@localhost ~ ]mount -t nfs 192.168.86.10:/opt/web /var/www/html


[ root@localhost ~ ] # curl 127.0.0.1           /成功访问主页内容

hello world !

[root@localhost ~]# echo "this is kgc " >>/var/www / html/ index..html
//客广端修改主页文件


[ root@localhost web] # cat index.html      //服务器端会同步this is kgc

同理可得,服务端写入或修改内容,客户端也会同步

df -h                                  #查看挂载情况

在其他虚拟机配置同样的客户端配置 也可或得同样结果

修改/etc/fstab实现自动挂载:

192.168.10.17 :/opt/web      /var/ www/html   nfs     defaults,_netdev    0 0

defaults, _netdev说明这是一个网络设备
注意:NFS ‘客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端VFS服务突然间停掉了,那么在客户端就会出现执行df -h 命令卡死的现象。这个时候使用umount命令是无法直接卸载的,需要加上 -lf才能卸载
-l表示解除正在繁忙的文件系统,-f表示强制。

[ root@localhost ~]#umount /var / www / html       ###客户端卸载时会卡住

[ root@localhost ~]# umount -lf /var/www/ html     ###加lf参数成功卸载

其他nfs文件:

/var/lib/nfs/etab                           记录NFS分享出来的目录的完整权限设定值
/ var/ lib/nfs/xtab                         记录曾经登录过的客户端信息

总结

1.了解yum仓库
2.如何配置yum仓库
3.NFS网络文件服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值