部署yum仓库与NFS服务
构建yum软件包
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
YUM的配置文件
●基本配置:/etc/yum.conf
●仓库设置:/etc/yum.repos.d/*.repo
●日志文件:/var/log/yum.log
软件仓库的提供方式
●FTP服务:ftp://
●HTTP服务:http://
●本地目录:file://
yum常用命令
yum仓库更新的两个命令:
yum -y update 既更新软件包,同时也更新系统内核 (更新时间长)
yum -y upgrade 只更新软件包
yum install <软件包> 安装软件包
yum remove <软件包> 卸载软件包
yum clean all 清空缓存
yum list 查看软件列表
yum info <软件包> 查看软件包详细信息
yum whatprovides <文件/目录> 查看文件/目录属于哪个软件包安装的
yum grouplist 【包组名】 查看包组软件列表
yum groupinfo <包组名> 查看包组详细信息
yum groupinstall gnome-desktop 包组安装图形化界面
yum groupremove gnome-desktop 包组卸载图形化界面
FTP远程仓库搭建步骤
实验环境:2台linux服务器一台为服务端一台为客户端,我们需要FTP服务来进行远程yum源仓库
介绍服务
ftp:其实通俗的说FTP是一种数据传输协议,负责将我们电脑上的数据与服务器数据进行交换,比如我们要将在我们电脑中制作的网站程序传到服务器上就需要使用FTP工具,将数据从电脑传送到服务器。默认端口是TCP:21,在 FTP 的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。
createrepo是linux下的创建仓库的软件包。create是创建的意思,repo是repository的缩写,是仓库的意思。
服务端
挂载光盘
[root@text01 ~]# mount /dev/cdrom /mnt/
安装vsftpd
[root@localhost var]# yum -y install vsftpd
将镜像中的内容复制/var/ftp目录下新建的centos7目录中
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7 & ##-rf表示递归强制复制,最后加上&可以后台执行
建立yum索引环境
mkdir /var/ftp/other
createrepo -g /mnt/repodata/repomd.xml /var/ftp/other ##非官方的rpm要放在另外新建的
关闭核心防护,清空防火墙阻拦规则,再启动vsftps服务
setenforce 0
iptables -F
systemctl start vsftpd
客户端
这里看到的是远程的yum的仓库
[root@text02 ~]# yum -y install ftp 安装ftp
[root@text02 ~]# ftp 192.168.136.190 连接服务端ip
Connected to 192.168.136.190 (192.168.136.190).
220 (vsFTPd 3.0.2)
Name (192.168.136.190:root): ftp 访问名称
331 Please specify the password.
Password: 服务主机密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
227 Entering Passive Mode (192,168,136,95,224,123).
150 Here comes the directory listing.
drwxr-xr-x 8 0 0 220 Oct 24 03:52 centos7
drwxr-xr-x 3 0 0 22 Oct 24 03:49 other
drwxr-xr-x 2 0 0 6 Apr 01 2020 pub
搭建本地yum源同步到远程
[root@text02 ~]#cd /etc/yum.repos.d/ 本地yum仓库配置文件
[root@text02 yum.repos.d]# mkdir bak 创建一个文件
[root@text02 yum.repos.d]# mv *.repo bak/ 移除yun源
创建yum源
[root@text02 yum.repos.d]# vi centos7.repo
[base]
name=centos7
baseurl=ftp://192.168.136.190/centos7
enabled=1
gpgcheck=1
gpgkey=ftp://192.168.136.190/centos7/RPM-GPG-KEY-CentOS-7
[other]
name=other.packages
baseurl=ftp://192.168.136.190/other
enabled=1
gpgcheck=0
重新加载yum
yum clean all
yum list
注意:我们这里是用的是服务端远程的资源,我们的本地源已经删除了
使用NFS发布共享资源
NFS应用场景
NFS(Network File System)即网络文件系统,是baiFreeBSD支持的du文件系统中的一种,它允许网络中的计算机之间共享资源。在NFS的应用中,本地daoNFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
安装nfs-utils ,rpcbind软件包
rpcbind软件包提供RPC是远程过程调用 ,nfs-utils提供NFS共享服务
服务端
为服务端添加一块用于共享的磁盘并为其创建分区并格式化
[root@txet01 mnt]# fdisk /dev/sdb
命令(输入 m 获取帮助):p
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):
将使用默认值 83886079
分区 1 已设置为 Linux 类型,大小设为 40 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@localhost ~]# mkfs.xfs /dev/sdb1 //格式化分区
[root@localhost ~]# mkdir /share //创建一个新目录作为挂载点
[root@localhost ~]# vi /etc/fstab //将磁盘挂载写入配置文件
/dev/sdb1 /share xfs defaults 0 0
.安装nfs-utils、rpcbind软件包
root@localhost ~]# yum -y install nfs-utils rpcbind
*编辑nfs配置文件添加需要进行远程共享的目录
[root@txet01 ~]# vi /etc/exports 开启共享文件
/mnt 192.168.136.0/24(rw,sync,no_root_squash 可读可写 同步 root不降级
开启rpcbind与nfs服务并设置为开机自启动
[root@txet01 ~]# systemctl start nfs 开启nfs服务
[root@txet01 ~]# systemctl start rpcbind 开启rpcbind服务
[root@txet01 ~]# systemctl stop firewalld.service 关闭防火墙
[root@txet01 ~]# setenforce 0 关闭核心防护
查看nfs服务是否启动
[root@localhost ~]# netstat -natp | grep rpc*
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 8514/rpcbind
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 18347/rpc.mountd
tcp 0 0 0.0.0.0:37237 0.0.0.0:* LISTEN 18327/rpc.statd
tcp6 0 0 :::111 :::* LISTEN 8514/rpcbind
tcp6 0 0 :::20048 :::* LISTEN 18347/rpc.mountd
tcp6 0 0 :::43906 :::* LISTEN 18327/rpc.statd
查看是否开启共享
[root@txet01 ~]# showmount -e
Export list for 192.168.136.221:
NFS的服务端就配置完成了,现在来配置客户端
给客户端安装一个httpd服务
关闭防火墙
[root@text02 html]# setenforce 0 关闭规则
[root@txet02 ~]# systemctl stop firewalld.service 关闭防火墙
安装http服务
[root@txet02 ~]# yum -y install httpd
[root@text02 ~]# mount 192.168.136.190:/mnt /var/www/html/ 手动挂载NFS共享目录
[root@text02 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 1.1G 49G 3% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 146M 869M 15% /boot
/dev/mapper/centos-home xfs 245G 33M 245G 1% /home
tmpfs tmpfs 378M 0 378M 0% /run/user/0
192.168.136.190:/mnt nfs4 40G 33M 40G 1% /var/www/html
如果想永久挂载,则可以进行如下设置:
[root@text02 ~]# vi /etc/fstab 自动挂载设置
192.168.136.190:/mnt /var/www/html nfs defaults,_netdev 0 0
[root@text02 ~]# mount -a 挂载所有
创建一个网站测试首页
[root@text02 ~]# cd /var/www/html/ 进入站点
[root@text02 html]# vim index.html 进入站点编辑
<h1>this nfs web </h1>
开启httpd服务
[root@client ~]# service httpd start ## 开启httpd服务
测试一下服务是否有效
强制卸载NFS
在服务端解挂载时候会出现卡死和挂载不掉的情况
[root@txet01 mnt]# systemctl stop nfs 服务端断开时
在客户端一定要手动卸载
[root@text02 html]# umount -lf /var/www/html 要手敲不要tab补全不让会出问题
[root@text02 html]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 1.1G 49G 3% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 146M 869M 15% /boot
/dev/mapper/centos-home xfs 245G 33M 245G 1% /home
tmpfs tmpfs 378M 0 378M 0% /run/user/0