一:部署YUM软件仓库
借助于
YUM
软件仓库,可以完成安装、卸载、自动升级
rpm
软件包等任务,能够自动查找并解决 rpm
包之间的依赖关系,而无须管理员逐个、手工地去安装每个
rpm
包,使管理员在维护大量 Linux
服务器时更加轻松自如。
YUM
的前身是
YUP
(
Yellow dog Updater
,
Yellow dog Linux
的软件更新器),最初由TSS 公司(
Terra Soft Solutions
,
INC.
)使用
Python
语言开发而成,后来由杜克大学(
Duck University)的
Linux
开发队伍进行改进,命名为
YUM
(
Yellow dog Updater
,
Modified
)。
要成功使用
YUM
机制来更新系统和软件,需要有一个包含各种
rpm
安装包文件及其依赖软件的软件仓库(repository
),提供软件仓库的服务器也称为
“
源
”
服务器。在客户机中只要正确指定软件仓库的地址等信息,就可以通过对应的“
源
”
服务器来安装或更新软件。
1.1:准备网络安装源(服务器端)
YUM
软件仓库通常借助于
HTTP
或
FTP
协议来进行发布,这样可以面向网络中的所有客户机提供软件源服务。为了便于客户机查询软件包,获取依赖关系等信息,在软件仓库中需要提供仓库数据(repodata
),其中收集了目录下所有
rpm
包的头部信息
1:准备软件仓库目录
在
CentOS 7
系统的安装光盘中,已针对软件目录
Packages
建立好
repodata
数据,因此只要简单地将整个光盘中的内容通过 HTTP
或
FTP
进行发布,就可以作为软件仓库了。2.
对于用户搜集的非
CentOS 7
光盘自带的更多其他软件包(必须包括存在依赖关系的所有安装文件),除了准备相应的目录之外,还需要手动创建 repodata
数据文件,这就要用到 createrepo 工具(需要从
CentOS 7
光盘中安装)
2:安装并启用vsftpd服务
[root@localhost ~]# rpm -ivh /media/cdrom/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm[root@localhost ~]# systemctl start vsftpd[root@localhost ~]# systemctl enable vsftpdCreated symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.serviceto /usr/lib/systemd/system/vsftpd.service.
1.2:配置软件仓库位置(客户端)
在客户机上需要指定至少一个可用的软件仓库,然后才能使用下一节将要介绍的
yum 工具来下载、安装软件包。yum
工具使用的软件仓库信息存放在
/etc/yum.repos.d
目录下扩展名为“.repo”
的文件中
[root@localhost ~]# vi /etc/yum.repos.d/centos7.repo[base] //仓库类别name=CentOS 7.3 //仓库名称 ( 说明 )baseurl=ftp://192.168.4.254/centos7 //URL 访问路径enabled=1 //启用此软件仓库gpgcheck=1 //验证软件包的签名gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 //GPG 公钥文件的位置[other]name=Other RPM Packagesbaseurl=ftp://192.168.4.254/otherenabled=1gpgcheck=0 //不验证软件包的签名
二:使用yum工具管理软件包
在
CentOS 7
服务器中,
yum
工具是最常用的
YUM
客户端工具,由默认安装的yum-3.2.29- 40.el6.noarch 软件包提供
2.1:查询软件包
1:yum list——查询软件包列表
直接执行
“yum list”
命令可以获得系统中的软件安装情况,也可以查询软件仓库中可用的软件包列表,其中子命令 list
表示列表查看。
2:
yum info
——
查询软件包的描述信息
当需要查看某个软件包的描述信息时,可以执行
“yum info
软件包名
”
,其中子命令
info表示获取信息
3
.
yum search
——
查询指定的软件包
当需要根据某个关键词来查找相关的软件包时,可以执行
“yum search
关键词
”
,默认仅根据软件包名称和描述信息进行搜索;若执行“yum search all
关键词
”
,可以扩大搜索范围
4
.
yum whatprovides
——
查询命令属于哪个软件包
yum whatprovides
就可以解决这个问题的,它可以查找某个命令属于哪个软件包
通过执行查询操作
“yum grouplist”“yum groupinfo
分组名称
”
可以获得
YUM 仓库中的软件分组信息
2.2:安装、升级、卸载软件包
执行操作时会自动检查并解决软件包之间的依赖关系,期间会提示用户按 Y
键确认安装或升级操作,若希望自动确认,可以在
yum
命令后添加
“-y” 选项。
使用
yum
工具卸载软件包时,通过子命令
remove
来完成,卸载操作通过软件仓库也可以完成
使用
yum
工具管理软件包时,结合子命令
groupinstall
、
groupupdate
、
groupremove可以针对软件分组进行安装、升级、卸载操作。例如,若执行“yum -y groupremove gnome-desktop”命令,则会删除整个
Desktop
分组所包含的软件包
三:NFS共享存储服务
NFS
是一种基于
TCP/IP
传输的网络文件系统协议,最初由
Sun
公司开发。通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。对于大多数负载均衡群集来说,使用 NFS
协议来共享数据存储是比较常见的做法,
NFS
也是
NAS
存储设备必然支持的一种协议
3.1:使用NFS发布共享资源
NFS
服务的实现依赖于
RPC
(
Remote Process Call
,远端过程调用)机制,以完成远程到本地的映射过程。在 CentOS 7
系统中,需要安装
nfs-utils
、
rpcbind
软件包来提供
NFS 共享服务,前者用于 NFS
共享发布和访问,后者用于
RPC
支持
1.
安装
nfs-utils
、
rpcbind
软件包
提供
RPC
支持的服务为
rpcbind
,提供
NFS
共享的服务为
nfs
,完成安装以后建议调整这两个服务的自启动状态,以便每次开机后自动启用。手动加载 NFS
共享服务时,应该先启动 rpcbind
,再启动
nfs
2.
设置共享目录
NFS
的配置文件为
/etc/exports
,文件内容默认为空(无任何共享)。在
exports
文件中设置共享资源时,记录格式为“
目录位置 客户机地址
(
权限选项
)”
。
客户机地址可以是主机名、
IP
地址、网段地址,允许使用
*
、
?
通配符;权限选项中的 rw
表示允许读写(
ro
为只读),
sync
表示同步写入,
no_root_squash
表示当客户机以 root 身份访问时赋予本地
root
权限(默认是
root_squash
,将作为
nfsnobody
用户降权对待)。
当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格分隔指定多个“
客户机(权限选项)
”
即可。
3.
启动
NFS
服务程序
4.
查看本机发布的
NFS
共享目录
3.2:在客户机中访问 NFS 共享资源
NFS
协议的目标是提供一种网络文件系统,因此对
NFS
共享的访问也使用
mount
命令来进行挂载,对应的文件系统类型为 nfs
。既可以手动挂载,也可以加入
fstab
配置文件来实现开机自动挂载。
1.
安装并启动
rpcbind
若要正常访问
NFS
共享资源,客户机中也需要安装
rpcbind
软件包,并启动
rpcbind 系统服务。另外,为了使用 showmount
查询工具,建议将
nfs-utils
软件包也一并装上。
如果已经安装了
nfs-utils
软件包,则客户机也可以使用
showmount
查看
NFS
服务器端共享了哪些目录,查询格式为“showmount -e
服务器地址
”
。
2.
手动挂载
NFS
共享目录
以
root
用户身份执行
mount
操作,将
NFS
服务器共享的
/opt/wwwroot
目录挂载到本地目录/var/www/html
。与挂载本地文件系统不同的是,设备位置处应指出服务器地址
完成挂载以后,访问客户机的
/var/www/html
文件夹,实际上就相当于访问
NFS
服务器中的/opt/wwwroot
文件夹,其中的网络映射过程对于用户程序来说是透明的
3. fstab 自动挂载设置
修改
/etc/fstab
配置文件,加入
NFS
共享目录的挂载设置。注意将文件系统类型设为 nfs,挂载参数建议添加
_netdev
(设备需要网络);若添加
soft
、
intr
参数可以实现软挂载,允许在网络中断时放弃挂载。这样客户机就可以在每次开机后自动挂载 NFS
共享资源了
4.
强制卸载
NFS
NFS
客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端
NFS 服务突然间停掉了,那么在客户端就会出现执行 df -h
命令卡死的现象。这个时候使用 umount 命令是无法直接卸载的,需要加上
-lf
才能卸载。
当出现卡死现象时,要重新开一个终端,执行
cat /etc/rc.local
命令,查看挂载点。然后使用 umount
命令卸载,其中
-l
表示解除正在繁忙的文件系统,
-f
表示强制。