一.YUM源仓库部署
1.YUM 概述
(1)是基于RPM软件包构建的软件更新机制
(2)可以自动解决依赖关系
(3)所有软件包有集中的YUM软件仓库提供
2.准备YUM源
(1)软件仓库的提供方式:三种
FTP服务:ftp:///.........
HTTP服务:http:///......
本地目录:file:///........
(2)RPM软件包的来源
CentOS发布的RPM包集合
第三方组织发布的RPM包集合
用户自定义的RPM包集合
(3) 一键安装软件包的工具
RHEL、CentOS yum dnf
Ubuntu、Debian apt apt-get
(4)yum安装的好处
一键安装更新软件包
自动解决软件包之间的依赖关系
软件包仓库可以集中管理并提供给多个客户机使用
(5)yum软件仓库的常用类型:
本地源仓库:baserul=file://
在线源仓库:baserul=http:// 或 https://
ftp源仓库:baserul=ftp://
(6)常见的国内镜像源地址
网易163 yum源,安装方法查看:http://mirrors.163.com/.help/
中科大的 yum源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help
sohu的 yum源,安装方法查看: http://mirrors.sohu.com/help/
阿里云的 yum源,安装方法查看: https:/lopsx.alibaba.com/mirror
清华大学的 yum源,安装方法查看: https://mirrors.tuna.tsinghua.edu.cn/
浙江大学的 yum源,安装方法查看: http://mirrors.zju.edu.cn/
中国科技大学yum源,安装方法查看:http://centos.ustc.edu.cn/
(7)如何搭建yum本地源仓库、ftp源仓库?
【1】在仓库主机的软件包目录中准备好软件包列表,并使用 createrepo <软件包目录> 命令建立仓库数据文件
【2】在客户机的 /etc/yum.repos.d/ 目录中创建yum仓库源配置文件 XXX.repo
【3】在 XXX.repo yum仓库源配置文件使用 baseurl=file:// 指定本地的软件包目录、在 XXX.repo yum仓库源配置文件使用baseurl=ftp:// 指定ftp服务器地址及其子目录
【4】yum makecache 更新缓存, yum install -y 安装软件
3.查看YUM源
(1)本地YUM源
[root@192 repo.bak]# cd /mnt/ #在mnt中放入本地yum源的文件
[root@192 mnt]# ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@192 mnt]# cd /etc/yum.repos.d/ #进入这个目录中准备yum源配置文件
[root@192 yum.repos.d]# ls
local.repo repo.bak
[root@192 yum.repos.d]# vim local.repo #编辑yum源配置文件,在文件进行以下配置
[local]
name=local
baseurl=file:///mnt #本地yum源配置
enabled=1
gpgcheck=0
(2)在线YUM源(官方)
[root@192 yum.repos.d]# cd repo.bak/
[root@192 repo.bak]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-x86_64-kernel.repo
#第一个即是官方yum源配置
[root@192 repo.bak]# vim CentOS-Base.repo
官方使用的在线YUM源,和本地YUM源配置格式类似,因为光盘yum源在国外,可能导致不稳定,所以我们一般使用国内的在线源镜像yum仓库。
4.构建YUM源
(1)镜像光盘挂载
【1】使用 mount /dev/mnt / 直接挂载
【2】或使用 mount -o xxxx.iso /mnt 指定镜像文件进行挂载
然后到yum源仓库进行相关的配置即可
[root@192 yum.repos.d]# vim local.repo #编辑yum源配置文件,在文件进行以下配置
[local]
name=local
baseurl=file:///mnt #yum源仓库配置
enabled=1
gpgcheck=0
(2)使用FTP挂载
#进行ftp相关软件的安装
[root@192 yum.repos.d]# cd /mnt/Packages/
[root@192 Packages]# ls | grep vsftpd-3.0.2-29.el7_9.x86_64.rpm
vsftpd-3.0.2-29.el7_9.x86_64.rpm
[root@192 Packages]# rpm -ivh vsftpd-3.0.2-29.el7_9.x86_64.rpm
警告:vsftpd-3.0.2-29.el7_9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:vsftpd-3.0.2-29.el7_9 ################################# [100%]
[root@192 Packages]# vim /etc/vsftpd/vsftpd.conf #进入到文件不需要进行修改,只要读即可
[root@192 Packages]# systemctl start vsftpd #启动软件
[root@192 Packages]# cp * /var/ftp/ /复制所有文件去/var/ftp/目录中(时间比较久稍微等会)
[root@192 Packages]# cd /var/ftp/
[root@192 Packages]# ls
...............省略软件包数据.............................
[root@192 ftp]# createrepo ./ #根据软件包数据,自动创建yum依赖包
Spawning worker 0 with 1018 pkgs
Spawning worker 1 with 1018 pkgs
Spawning worker 2 with 1017 pkgs
Spawning worker 3 with 1017 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@192 ftp]# ls -l | grep "^d" #查看以d开头的
drwxr-xr-x. 2 root root 6 6月 10 2021 pub
drwxr-xr-x. 2 root root 4096 5月 5 21:33 repodata #自动生成这个目录
[root@192 ftp]# cd repodata/ #根据软件包相互之间关系建立依赖关系
[root@192 repodata]# ls #再根据他们之间依赖关系创建数据库
2242dc8998cf776b2548853ea2b452a8ad7b0a63ef5db520b659fd732ae6e677-filelists.xml.gz
63d8eced97689d5ff543268c6242e481d3f601d5eb85372073068281e8fe7cd5-primary.sqlite.bz2
867d168de0c2cb822f6220cbdbcd2242c3f083ae6b39784dd6b33ee42c676c1a-filelists.sqlite.bz2
90ca66818b28dce26d35c2b2b0e52b52b5cfb17fc517b83f6434319a41a5177e-other.sqlite.bz2
e03cac5ae7e5c9c222e382027983701a9d50931a28dd838a57659812b76fca63-other.xml.gz
ffea412d048f90c6121db9f2dee7dc4f70858572659555118fc5e395ed86c25b-primary.xml.gz
repomd.xml
配置FTP源
先进行初始化操作,关闭防火墙和安全保护
[root@192 repodata]# systemctl stop firewalld
[root@192 repodata]# setenforce 0
现在开启另一台虚拟机作为客户端,使用 FTP YUM 仓库源
[root@192 ~]# cd /etc/yum.repos.d/
[root@192 yum.repos.d]# ls
local.repo repos.bak
[root@192 yum.repos.d]# mv local.repo ftp.repo
[root@192 yum.repos.d]# ls
ftp.repo repos.bak
[root@192 yum.repos.d]# vim ftp.repo #修改配置文件
[ftp]
name=ftp
baseurl=ftp://192.168.10.60/ #ftp配置文件
enabled=1 #/代表根目录/var/ftp/
gpgcheck=0
之后使用 yum install 安装软件即可
[root@192 yum.repos.d]# yum clean all && yum makecache
已加载插件:fastestmirror, langpacks
正在清理软件源: ftp
Cleaning up list of fastest mirrors
Other repos take up 52 M of disk space (use --verbose for details)
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
ftp | 2.9 kB 00:00:00
(1/3): ftp/filelists_db | 3.3 MB 00:00:00
(2/3): ftp/primary_db | 3.3 MB 00:00:00
(3/3): ftp/other_db | 1.3 MB 00:00:00
元数据缓存已建立
[root@192 yum.repos.d]# yum install -y httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-97.el7.centos.5 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-97.el7.centos.5,它被软件包 httpd-2.4.6-97.el7.centos.5.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-97.el7.centos.5.x86_64 需要
--> 正在检查事务
---> 软件包 httpd-tools.x86_64.0.2.4.6-97.el7.centos.5 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
===============================================================================================
Package 架构 版本 源 大小
===============================================================================================
正在安装:
httpd x86_64 2.4.6-97.el7.centos.5 ftp 2.7 M
为依赖而安装:
httpd-tools x86_64 2.4.6-97.el7.centos.5 ftp 94 k
mailcap noarch 2.1.41-2.el7 ftp 31 k
事务概要
===============================================================================================
安装 1 软件包 (+2 依赖软件包)
总下载量:2.8 M
安装大小:9.6 M
Downloading packages:
(1/3): httpd-tools-2.4.6-97.el7.centos.5.x86_64.rpm | 94 kB 00:00:00
(2/3): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:00
(3/3): httpd-2.4.6-97.el7.centos.5.x86_64.rpm | 2.7 MB 00:00:00
-----------------------------------------------------------------------------------------------
总计 18 MB/s | 2.8 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : httpd-tools-2.4.6-97.el7.centos.5.x86_64 1/3
正在安装 : mailcap-2.1.41-2.el7.noarch 2/3
正在安装 : httpd-2.4.6-97.el7.centos.5.x86_64 3/3
验证中 : mailcap-2.1.41-2.el7.noarch 1/3
验证中 : httpd-tools-2.4.6-97.el7.centos.5.x86_64 2/3
验证中 : httpd-2.4.6-97.el7.centos.5.x86_64 3/3
已安装:
httpd.x86_64 0:2.4.6-97.el7.centos.5
作为依赖被安装:
httpd-tools.x86_64 0:2.4.6-97.el7.centos.5 mailcap.noarch 0:2.1.41-2.el7
完毕!
[root@192 yum.repos.d]#
主机关闭 vsftpd 软件后,ftp 仓库源配置失效
Failed connect to 192.168.10.60:21; Connection refused"
正在尝试其它镜像。
apache-commons-dbcp-1.4-17.el7 FAILED
ftp://192.168.10.60/apache-commons-dbcp-1.4-17.el7.noarch.rpm: [Errno 14] curl#7 - "Failed connect to 192.168.10.60:21; Connection refused"
正在尝试其它镜像。
apache-commons-daemon-1.0.13-7 FAILED
ftp://192.168.10.60/apache-commons-daemon-1.0.13-7.el7.x86_64.rpm: [Errno 14] curl#7 - "Failed connect to 192.168.10.60:21; Connection refused"
正在尝试其它镜像。
apache-commons-logging-1.1.2-7 FAILED
ftp://192.168.10.60/apache-commons-logging-1.1.2-7.el7.noarch.rpm: [Errno 14] curl#7 - "Failed connect to 192.168.10.60:21; Connection refused"
正在尝试其它镜像。
Error downloading packages:
avalon-framework-4.3-10.el7.noarch: [Errno 256] No more mirrors to try.
apache-commons-logging-1.1.2-7.el7.noarch: [Errno 256] No more mirrors to try.
apache-commons-pool-1.6-9.el7.noarch: [Errno 256] No more mirrors to try.
tomcat-servlet-3.0-api-7.0.76-16.el7_9.noarch: [Errno 256] No more mirrors to try.
xml-commons-resolver-1.2-15.el7.noarch: [Errno 256] No more mirrors to try.
avalon-logkit-2.1-14.el7.noarch: [Errno 256] No more mirrors to try.
apache-commons-dbcp-1.4-17.el7.noarch: [Errno 256] No more mirrors to try.
xml-commons-apis-1.4.01-16.el7.noarch: [Errno 256] No more mirrors to try.
tomcat-jsp-2.2-api-7.0.76-16.el7_9.noarch: [Errno 256] No more mirrors to try.
geronimo-jta-1.1.1-17.el7.noarch: [Errno 256] No more mirrors to try.
tomcat-7.0.76-16.el7_9.noarch: [Errno 256] No more mirrors to try.
xerces-j2-2.11.0-17.el7_0.noarch: [Errno 256] No more mirrors to try.
apache-commons-daemon-1.0.13-7.el7.x86_64: [Errno 256] No more mirrors to try.
geronimo-jms-1.1.1-19.el7.noarch: [Errno 256] No more mirrors to try.
xalan-j2-2.7.1-23.el7.noarch: [Errno 256] No more mirrors to try.
apache-commons-collections-3.2.1-22.el7_2.noarch: [Errno 256] No more mirrors to try.
javamail-1.4.6-8.el7.noarch: [Errno 256] No more mirrors to try.
tomcat-el-2.2-api-7.0.76-16.el7_9.noarch: [Errno 256] No more mirrors to try.
1:ecj-4.5.2-3.el7.x86_64: [Errno 256] No more mirrors to try.
tomcat-lib-7.0.76-16.el7_9.noarch: [Errno 256] No more mirrors to try.
log4j-1.2.17-18.el7_4.noarch: [Errno 256] No more mirrors to try.
再开一台主机进行验证ftp仓库源
[root@192 ~]# umount /dev/sr0
[root@192 ~]# umount /dev/sr0
[root@192 ~]# umount /dev/sr0
umount: /dev/sr0:未挂载
[root@192 ~]# cd /etc/yum.repos.d/
[root@192 yum.repos.d]# ls
local.repo repos.bak
[root@192 yum.repos.d]# mv local.repo ftp.repo
[root@192 yum.repos.d]# vim ftp.repo
[ftp]
name=ftp-192.168.10.60
baseurl=ftp://192.168.10.60/centos7/ #如果想要增加目录
enabled=1 #需要再主机添加一个目录,且将软件包数据移动过去并
gpgcheck=0 使用 createrepo +目录 进行调整
添加目录操作
[root@192 ftp]# mkdir centos7
[root@192 ftp]# mv *.rpm centos7/
[root@192 ftp]# createrepo centos7/ #重新建立依赖仓库数据
Spawning worker 0 with 1018 pkgs
Spawning worker 1 with 1018 pkgs
Spawning worker 2 with 1017 pkgs
Spawning worker 3 with 1017 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
#这样子就可以了
之后正常 yum install 安装即可
拓展:其他修改yum源仓库指定目录位置的办法
vim /etc/vsftpd/vsftpd.conf #进入到此文件中增加配置
在线替换yum源的办法
yum在线源替换方法:
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
cd /etc/yum.repos.d/
vim CentOS-Base.repo
baseurl=http://mirror.centos.org/ 替换成 https://mirrors.tuna.tsinghua.edu.cn/
https://mirrors.aliyun.com/
https://mirrors.163.com/
5.常用的yum操作
(1)查询软件包
yum list [软件名]
Yum info [软件名]
yum search < 关键词 >
yum whatprovides < 关键词 >
(2)安装软件
yum install [软件名]
yum groupinstall < 包组名 >
(3)升级软件
yum update
yum groupupdate
(4)卸载软件
yum remove < 软件名 >
yum groupremove < 包组名 >
拓展: 通过yum下载软件包
(1)开启缓存
vim /etc/yum.conf
cachedir=软件包缓存目录
keepcache=1 #1为开启缓存,0为关闭缓存
yum install -y 软件名 #下载并安装软件包
(2)仅下载软件包
yum install -y 软件名 --downloadonly --downloaddir=软件包下载目录yumdownloader --destdir=软件包下载目录 --resolv 软件名 #--resolv代表下载软件所需的所有依赖包,不加这个选项代表仅下载指定的软件包
二.NFS共享存储服务
1.NFS(Network File System 网络文件系统)介绍
NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。但是由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。
2.linux中要使用NFS需要下载的软件包
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。
所以需要安装 nfs-utils、rpcbind 软件包来提供 NFS共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。NFS 的配置文件为/etc/exports
格式为:共享的目录位置 客户机地址(权限选项)
3.提供共享存储的组合
真正提供存储能力的硬件设备
使用通用服务器制作的文件服务器 或 专用的企业级存储设备NAS
+
linux系统使用的共享存储服务 NFS
Windows系统使用的共享存储服务 CIFS存储类型:块存储 硬盘 LVM RAID
文件存储 NFS
对象存储 OSS
4.搭建NFS共享服务
(1)初始化操作
[root@server ~]# systemctl stop firewalld
[root@server ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@server ~]# setenforce 0
[root@server ~]# vim /etc/selinux/config
#改成disabled
为了方便识别,分别将两台虚拟机主机名设置为server1与server2
[root@localhost ~]# hostname server1
[root@localhost ~]# su
[root@server1 ~]
[root@localhost ~]# hostname server2
[root@localhost ~]# su
[root@server2 ~]
(2)在服务端安装nfs-utils与rpcbind,nfs-utils两个软件
[root@server ~]# yum -y install rpcbind
[root@server ~]# yum -y install nfs-utils
(3)在NFS服务器中建立一个用于共享的目录
[root@server ~]# mkdir -p /share #在根目录创建一个NFS共享目录
[root@server ~]# chmod 777 /share #将权限调至最大
(4)在服务端更改NFS配置,对访问用户进行限制
vim /etc/exports
#写入如下内容:
/share 192.168.10.0/24(rw,sync,no_root_squash)
共享文件或目录
允许的网段
可读写 读写同步在内存和硬盘
客户端以本地root用户访问
# share:需要共享的文件目录
# 192.168.10.0/24:允许访问的网段
# rw,sync,no_root_squash:rw可读写,sync同步,no_root_squash:root远程用户使用时不降权
Sync:写入缓存时同时写入硬盘
Async:不同时写入硬盘
no_root_squash:不降权限
ro:只读
(5)服务端进行rpcbind服务启动,再进行nfs服务启动
systemctl start rpcbind #先启动rpcbind
systemctl start nfs #再启动nfs
systemctl enable rpcbind #设置开启自启
systemctl enable nfs
查看本机发布的共享服务
showmount -e (后面可以跟指定的IP)
这里,NFS的服务端的配置王城,接下来配置客户端的NFS服务
(6)客户端安装nfs服务,并且打开服务
[root@server2 ~]# yum -y install rpcbind nfs-utils
客户端查看服务端发布的共享服务 :
shoemount -e + 主机IP地址
(7)使用mount命令将远程NFS服务器挂载到本地
[root@server2 ~l# mkdir /resource
[root@server2 ~# mount 192.168.10.102:/share /resource
[root@server2 ~l# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 26G 4.6G 22G 18% /
dev/sda1 xfs 1014M 187M 828M 19% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0
tmpfs tmpfs 378M 24K 378M 1% /run/user/1000
/dev/sro iso9660 4.5G 4.5 0 100% /mnt
192.168.10.60:/sharenfs4 nfs4 26G 4.4G 22G 17% /resource
实现自动挂载:vim /etc/fstab
添加
192.168.10.60:/share /resource nfs defaults,_netdev 0 0
服务器共享目录 本机挂载点 文件类型 挂载参数 不自检 不备份
保存退出后,进行 mount -a 进行挂载刷新
之后再两台虚拟机之间测试即可
配置 NFS 网络文件系统共享服务具体步骤
(1)服务端要安装软件包 rpcbind、nfs-utils 并启动服务 rpcbind(端口111)、nfs(端口2049)
客户端要安装 rpcbind 并启动服务
systemctl enable --now rpcbind nfs #要求先启动rpcbind,再启动nfs
(2)在服务端准备共享目录
准备好硬盘分区/LVM/RAID,格式化,挂载到共享目录,并设置相应的权限
chmod 777 <共享目录> #若客户端只读不写则省略(3)设置共享配置文件
vim /etc/exports
共享目录 客户端地址或网段(共享参数选项,....)
ro rw sync async no_root_squash all_squash anonuid anongid no_subtree_check(4)发布共享目录
exportfs -arv #在线发布服务端检查 showmount -e
客户端检查 showmount -e 服务端IP(5)客户端挂载使用
mount [-t nfs] 服务端IP:共享目录 本地挂载点目录vim /etc/fstab
服务端IP:共享目录 本地挂载点目录 nfs defaults,_netdev 0 0
拓展: 如客户端挂载目录卡死 使用 umount -lf 挂载目录 强制解挂载
三.总结
1.要了解yum源三种配置方法
2.要会构建yum源仓库
3.要会操作NFS共享存储服务的流程