荐 在Centos中搭建本地YUM源、远程YUM仓库与NFS共享存储服务
程序员文章站
2022-07-09 17:24:07
文章目录前言一、YUM仓库服务1.1YUM概述1.2YUM安装1.2.1软件仓库的提供方式1.2.2RPM软件包的来源1.2.3构建CentOS7软件仓库1.2.4在软件仓库中加入非官方RPM包组1.2.5配置软件仓库位置(客户机端)1.3YUM工具概述1.3.1关于YUM命令1.3.2YUM的配置文件1.3.3YUM缓存目录1.4软件包查询1.4.1查询软件包1.4.2查询软件包组1.5软件安装、升级、卸载1.5.1安装软件1.5.2升级软件1.5.3卸载软件1.6搭建本地YUM源1.7搭建远程YUM源环...
文章目录
前言
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
一、YUM仓库服务
1.1YUM概述
- YUM(Yellow dog Updater, Modified)
基于RPM包构建的软件更新机制
可以自动解决依赖关系
所有软件包由几种的YUM软件仓库提供
1.2YUM安装
1.2.1软件仓库的提供方式
- FTP服务:ftp://……
- HTTP服务: http://……
- 本地目录:file://……
1.2.2RPM软件包的来源
- CentOS发布的RPM包集合
- 第三方组织发布的RPM包集合
- 用户自定义的RPM包集合
1.2.3构建CentOS7软件仓库
- RPM包来自CentOS7 DVD光盘
- 通过FTP,HTTP或本地目录提供给客户机
1.2.4在软件仓库中加入非官方RPM包组
- 包括存在依赖关系的所有RPM包
- 使用createrepo工具建立仓库数据文件
1.2.5配置软件仓库位置(客户机端)
- 为客户机指定YUM仓库位置
配置文件:/etc/yum.repo.d/*.repo - 直接以CentOS 7光盘作软件仓库
将CentOS7光盘放入光驱
指定仓库位置,URL地址为file:///media/cdrom
1.3YUM工具概述
1.3.1关于YUM命令
- 由软件包yum-3.4.3-150.el7.centos.noarch提供
- 用来访问YUM仓库,查询、 下载及安装、卸载软件包
1.3.2YUM的配置文件
- 基本设置: /etc/yum.conf
- 仓库设置: /etc/yum.repos.d/*.repo
- 日志文件: /var/log/yum.log
1.3.3YUM缓存目录
- 存放下载的软件包、仓库信息等数据
- 位于/var/cache/yum/$ basearch/$releasever
[root@localhost ~]# yum clean all #清空缓存
1.4软件包查询
1.4.1查询软件包
yum list <软件包> #查看软件列表
yum info <软件包> #查看软件包详细信息
yum search <关键词> #检查软件包的信息
yum whatprovides <关键词> #查看文件/目录归属于哪个软件包
1.4.2查询软件包组
yum grouplist [包组名]
yum groupinfo [包组名]
1.5软件安装、升级、卸载
1.5.1安装软件
yum install [软件名]
yum group install [软件名]
1.5.2升级软件
yum updata #既更新软件包,同时也更新系统内核
yum upgrade #只更新软件包
yum groupupdata
1.5.3卸载软件
yum remove [软件名]
1.6搭建本地YUM源
在有网情况下我们可以直接联网使用YUM仓库,假如没有网呢?我们就需要搭建本地YUM源来安装软件包,下面我们就模拟没有网场景搭建YUM仓库
[root@localhost ~]# cd /etc/yum.repos.d/ #yum仓库的配置文件
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@localhost yum.repos.d]# mkdir bak #创建bak目录
[root@localhost yum.repos.d]# mv *.repo bak #将yum仓库的配置文件剪切到bak目录
[root@localhost yum.repos.d]# ls
bak
[root@localhost yum.repos.d]# ls bak
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# yum list
[root@localhost yum.repos.d]# yum install httpd -y #安装Apache已无法安装
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
There are no enabled repos.
Run "yum repolist all" to see the repos you have.
To enable Red Hat Subscription Management repositories:
subscription-manager repos --enable <repo>
To enable custom repositories:
yum-config-manager --enable <repo>
我们在安装centos时已经将本地镜像挂载在光驱里了
[root@localhost yum.repos.d]# mount /dev/cdrom /mnt #挂载光盘
[root@localhost yum.repos.d]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 4.1G 46G 9% /
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/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 245G 37M 245G 1% /home
tmpfs tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs tmpfs 378M 40K 378M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt
[root@localhost mnt]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim 123.repo #手工搭建本地YUM源
[123]
name=base
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@localhost yum.repos.d]# yum list #再次查看yum软件列表
1.7搭建远程YUM源环境
创建两台虚拟机,一台作服务机,一台作客户机
服务端配置:
[root@server ~]# mount /dev/cdrom /mnt #挂载光盘
[root@server ~]# yum install vsftp* -y #安装ftp服务
[root@server ~]# cd /var/ftp
[root@server ftp]# ls
pub
[root@server ftp]# mkdir centos7
[root@server ftp]# ls
centos7 pub
[root@server ftp]# cp -rf /mnt/* /var/ftp/centos7/ & #将mnt下yum配置文件复制到centos7目录下
[root@server ftp]# createrepo -g /mnt/repodata/repomd.xml other/ #建立yum索引环境
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[1]+ 完成 cp -i -rf /mnt/* /var/ftp/centos7/
[root@server ftp]# iptables -F
[root@server ftp]# setenforce 0
[root@server ftp]# systemctl start vsftpd #启动ftp服务
客户端配置
[root@client ~]# yum install ftp -y
[root@client ~]# ftp 192.168.100.144
Connected to 192.168.100.144 (192.168.100.144).
220 (vsFTPd 3.0.2)
Name (192.168.100.144:root): ftp #匿名登录不需要密码
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls #可以查看到ftp中的目录文件
227 Entering Passive Mode (192,168,100,144,115,86).
150 Here comes the directory listing.
drwxr-xr-x 8 0 0 220 Jul 13 02:42 centos7
drwxr-xr-x 3 0 0 22 Jul 13 02:43 other
drwxr-xr-x 2 0 0 6 Apr 01 04:55 pub
226 Directory send OK.
[root@client ~]# cd /etc/yum.repos.d/ #到yum的配置文件中模拟断网情况
[root@client yum.repos.d]# mkdir bak
[root@client yum.repos.d]# mv *.repo bak
[root@client yum.repos.d]# vim 123.repo #搭建远程yum仓库
[base]
name=centos7.Packages
baseurl=ftp://192.168.100.144/centos7
enabled=1
gpgcheck=1
gpgkey=ftp://192.168.100.144/centos7/RPM-GPG-KEY-CentOS-7
[other]
name=other.Packages
baseurl=ftp://192.168.100.144/other
enabled=1
gpgcheck=0
[root@client yum.repos.d]# yum clean all #清空yum缓存
已加载插件:fastestmirror, langpacks
正在清理软件源: base other
Cleaning up list of fastest mirrors
Other repos take up 403 M of disk space (use --verbose for details)
[root@client yum.repos.d]# yum list
二、NFS共享存储服务
2.1NFS (Network File System) 网络文件系统
- 依赖于RPC (远端过程调用)
- 需安装nfs-utils、rpcbind软件包
- 系统服务: nfs、 rpcbind
- 共享配置文件: /etc/exports
2.2使用NFS发布共享资源
- 安装nfs-utils,rpcbind软件包
提供RPC支持的服务为rpcbind,提供NFS共享的服务为nfs,安装完成后建议调整为开机自启动状态
手动加载NFS共享服务时,应先启动rpcbind,然后在启动nfs - 设置共享目录
NFS的配置文件为/etc/exports,文件内容默认为空(无任何共享)
在exports文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)”
[root@localhost opt]# mkdir wwwroot
[root@localhost opt]# vim /etc/exports
/opt/wwwroot 192.168.100.0(rw,sync,no_root_squash)
/var/ftp/pub 192.168.179.10(ro) 192.179.50(rw)
- 启动NFS服务程序
- 查看本机发布的NFS共享目录
[root@localhost opt]# systemctl start rpcbind
[root@localhost opt]# systemctl start nfs
[root@localhost opt]# netstat -nuap | grep rpcbind
udp 0 0 0.0.0.0:600 0.0.0.0:* 48338/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 48338/rpcbind
[root@localhost opt]# showmount -e
2.3在客户机中访问NFS共享资源
- 安装rpcbind软件包,并启动rpcbind服务
若要正常访问NFS共享资源,客户机中也需要安装rpcbind软件包,并启动rpcbind服务
为了可以使用showmount查询工具,建议将nfs-utils软件包也一并装上
使用 “showmount -e 服务器地址”可以查看NFS服务器端共享了那些目录 - 手动挂载NFS共享目录
以root用户身份执行mount操作,将NFS服务器共享的/opt/wwwroot目录挂载到本地目录/var/www/html
与挂载本地文件系统不同的是,设备位置处应指出服务器地址
如:mount 192.168.197.171:/opt/wwwroot /var/www/html
完成挂在后,访问客户机的/var/www/html文件夹,相当于访问NFS服务器中的/opt/wwwroot文件夹,其中的网络映射过程对于用户程序来说是透明的 - fstab自动挂载设置
修改/etc/fstab配置文件,加入NFS共享目录的挂载设置。
注意将文件系统类型设置为nfs,挂载参数建议添加_netdev(设备需要网络)
若添加soft,intr参数可以实现软挂载,允许在网络中断时放弃挂载。 - 强制卸载NFS
NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端NFS服务突然停掉了,那么在客户端就会出现df -h命令卡死的现象
此时使用umount命令是无法直接卸载的,需要加上-lf才能卸载
出现卡死现象时,需要重新打开一个终端,执行 cat/etc/rc.local命令,查看挂载点
然后使用umount命令卸载,其中-l表示解除正在繁忙的文件系统,-f表示强制
2.4构建NFS服务
还是和上面一样,两台虚拟机,一台作服务机,一台作客户机,服务机添加一块硬盘做共享用
服务机配置
[root@server ~]# fdisk /dev/sdb #将sdb磁盘分区
[root@server ~]# mkfs.xfs /dev/sdb1 #格式化sdb1
[root@server ~]# vim /etc/fstab #永久挂载sbd1磁盘到/share
......
/dev/sdb1 /share xfs defaults 0 0
[root@server ~]# mount -a
[root@server ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 4.8G 46G 10% /
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/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 245G 37M 245G 1% /home
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/sdb1 xfs 20G 33M 20G 1% /share
[root@server ~]# iptables -F
[root@server ~]# setenforce 0
[root@server ~]# yum install nfs-utils rpcbind -y #安装nfs、pcbind服务
[root@server ~]# vim /etc/exports
/share 192.168.100.0/24(rw,sync,no_root_squash)
[root@server ~]# systemctl start rpcbind #启动rpcbind服务
[root@server ~]# systemctl enable rpcbind #开机自启rpcbind服务
[root@server ~]# systemctl start nfs #启动nfs服务
[root@server ~]# systemctl enable nfs #开机自启nfs服务
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@server ~]# systemctl status nfs
[root@server ~]# netstat -ntap | grep rpc
[root@server ~]# showmount -e #查看发布的NFS共享目录
Export list for server:
/share 192.168.100.0/24
客户机配置
[root@client ~]# yum install httpd -y
[root@client ~]# iptables -F
[root@client ~]# setenforce 0
[root@client ~]# mount 192.168.100.144:/share /var/www/html/ #临时挂载服务机的/share文件夹到本机里的/var/www/html/ 文件夹
[root@client ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 4.8G 46G 10% /
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/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 245G 37M 245G 1% /home
tmpfs tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs tmpfs 378M 40K 378M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
192.168.100.144:/share nfs4 20G 32M 20G 1% /var/www/html
[root@client ~]# vim /etc/fstab #永久挂载服务机的/share文件夹到本机里的/var/www/html/ 文件夹
......
192.168.100.144:/share /var/www/html nfs defaults,_netdev 0 0
[root@client ~]# cd /var/www/html/
[root@client html]# ls
[root@client html]# vim index.html #在客户机创建网页
<h1>this is changlianliting web</h1>
服务机
[root@server ~]# cd /share/
[root@server share]# ls #可以看到服务机中的share文件夹有了刚刚创建的网页
index.html
[root@server share]# cat index.html
<h1>this is changlianliting web</h1>
客户机
[root@client html]# cd ~
[root@client ~]# umount /var/www/html/ #将共享挂载点卸载了
[root@client ~]# ls /var/www/html/ #创建的网页随之没有
客户机
[root@client ~]# mount -a #再次挂载
服务机
[root@server share]# systemctl stop nfs #停止nfs服务
服务机将nfs服务关闭后,在客户机中查看挂载点已无法查看
客户机
[root@client ~]# umount -lf /var/www/html #将挂载点强制卸载
[root@client ~]# df -Th #可以查看
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 4.8G 46G 10% /
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/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 245G 37M 245G 1% /home
tmpfs tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs tmpfs 378M 36K 378M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_6
这里要注意的是,输入强制卸载命令时是不可以tab补全命令的,使用tab补全会导致卡死,之后需要Ctrl+c强制关闭,再重新输入命令
本文地址:https://blog.csdn.net/weixin_47153988/article/details/107309620