Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(pressentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
对于大多数负责均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。
但是,NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。
为客户机指定YUM仓库位置
配置文件:/etc/yum.repo.d/*.repo
直接以CentOS 7光盘作软件仓库
将CentOS7光盘放入光驱
指定仓库位置,URL地址为file:///media/cdrom
第一步:将centos7光盘镜像挂载到服务端(光盘镜像要连接状态)
[root@localhost ~]# hostnamectl set-hostname server '修改主机名为服务端,方便区分'
[root@localhost ~]# su
[root@server ~]# mount /dev/sr0 /mnt '将镜像挂载到本地'
mount: /dev/sr0 is write-protected, mounting read-only
[root@server ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 xfs 20G 3.1G 17G 16% /
...省略部分内容
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt
[root@server ~]# ls /mnt '挂载成功'
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
第二步:进入服务器站点,将镜像复制到文件夹
[root@server ~]# cd /var
[root@server var]# ls '发下没有ftp站点,所以需要安装vsftpd软件'
account cache db games kerberos local log nis preserve spool yp
adm crash empty gopher lib lock mail opt run tmp
[root@server var]# yum install vsftpd -y '安装vsftpd'
...省略部分内容
[root@server var]# ls
account cache db ftp gopher lib lock mail opt run tmp
adm crash empty games kerberos local log nis preserve spool yp
[root@server var]# cd ftp
[root@server ftp]# ls
pub
[root@server ftp]# pwd
/var/ftp
[root@server ftp]# mkdir centos7 '在站点下创建文件夹,存放镜像'
[root@server ftp]# ls
centos7 pub
[root@server ftp]# ls centos7
[root@server ftp]# cp -rf /mnt/* centos7/& '将镜像强制复制到centos7中,并在后台运行'
[1] 9301
[root@server ftp]# jobs '查看后台运行程序'
[1]+ Running cp -i -rf /mnt/* centos7/ &
[root@server ftp]# mkdir other '创建扩展目录,用于创建repodata数据文件'
[root@server ftp]# ls
centos7 other pub
'若已将作为源发布的其他 rpm 安
装包文件存放到/var/ftp/other 目录下,则可执行以下操作为其创建 repodata 数据。'
[root@server ftp]# createrepo -g /mnt/repodata/repomd.xml other '以现有的repodata目录为样板 '
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[1]+ Done cp -i -rf /mnt/* centos7/
[root@server ftp]# ls centos7
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@server ftp]# ls other/repodata
01a3b489a465bcac22a43492163df43451dc6ce47d27f66de289756b91635523-filelists.sqlite.bz2
401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz
5dc1e6e73c84803f059bb3065e684e56adfc289a7e398946574d79dac6643945-primary.sqlite.bz2
5f62201963ee83e178738d9f88078560377cc06f972a4c0094ab3be00cae515f-repomd.xml
6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz
7c36572015e075add2b38b900837bcdbb8a504130ddff49b2351a7fc0affa3d4-other.sqlite.bz2
c48538ac0f65ece36eb71d41b76f1eb1f98c58cc26777348490feaed8f38ab56-repomd.xml.gz
dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz
repomd.xml
[root@server other]# cd
第三步:开启vsftpd服务
[root@server ~]# systemctl start vsftpd
[root@server ~]# netstat -ntap | grep 21
tcp6 0 0 :::21 :::* LISTEN 12216/vsftpd
[root@server ~]# netstat -ntap | grep 20
vsftpd中
21端口负责连接服务器
20端口负责上传和下载
[root@server ~]# systemctl stop firewalld.service '关闭防火墙'
[root@server ~]# setenforce 0
第四步:进入客户端配置:安装ftp服务,查看是否可以看到站点
[root@client ~]# yum install ftp -y
[root@client ~]# ftp 192.168.197.172 '使用ftp用匿名方式登录服务端'
Connected to 192.168.197.172 (192.168.197.172).
220 (vsFTPd 3.0.2)
Name (192.168.197.172:root): ftp '输入名称'
331 Please specify the password.
Password: '输入root用户登录密码'
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls '发现可以查看到站点中的文件'
227 Entering Passive Mode (192,168,197,172,88,1).
150 Here comes the directory listing.
drwxr-xr-x 8 0 0 220 Nov 25 03:15 centos7
drwxr-xr-x 3 0 0 22 Nov 25 03:16 other
drwxr-xr-x 2 0 0 6 Oct 30 2018 pub
226 Directory send OK.
ftp> bye
221 Goodbye.
第五步:将所有的repo文件移动到文件夹中
[root@client ~]# cd /etc/yum.repos.d/
[root@client 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@client yum.repos.d]# mkdir bak
[root@client yum.repos.d]#mv *.repo bak
[root@client 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
第六步:清空缓存,自己写一个repo文件,并将秘钥复制到其中
[root@client yum.repos.d]# vim centos7.repo
[base] '//仓库类别'
name=centos7.packages '//仓库名称(说明) '
baseurl=ftp://192.168.197.172/centos7 '//URL 访问路径 '
enabled=1 '//启用此软件仓库 '
gpgcheck=1 '//验证软件包的签名 '
gpgkey=ftp://192.168.197.128/centos7/RPM-GPG-KEY-CentOS-7 '将服务端复制的秘钥粘贴到此,//GPG 公钥文件的位置 '
[other]
name=other.packages
baseurl=ftp://192.168.197.172/other
enabled=1
gpgcheck=0 '//不验证软件包的签名 '
'在服务端查看秘钥并复制'
[root@server ftp]# ls centos7 '服务端查看'
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
第七步:此时yum list 已经生效(可以安装安装软件包和进行更新相关操作了)
yum update 更新软件包,连内核一起更新
yum upgrade 只更新软件包,但不更新内核
安装软件
升级软件
yum update
yum groupdate
yum update 更新软件包,连内核一起更新
yum upgrade 只更新软件包,但不更新内核
卸载软件
安装nfs-utils,rpcbind软件包
设置共享目录
NFS的配置文件为/etc/exports,文件内容默认为空(无任何共享)
在exports文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)”
[root@localhost opt]# mkdir wwwroot
[root@localhost opt]# vim /etc/exports
/opt/wwwroot 192.168.197.171(rw,sync,no_root_squash)
启动NFS服务程序
[root@localhost opt]# mkdir wwwroot
[root@localhost opt]# vim /etc/exports
[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
查看本机发布的NFS共享目录
showmount -e
安装rpcbind软件包,并启动rpcbind服务
手动挂载NFS共享目录
fstab自动挂载设置
修改/etc/fstab配置文件,加入NFS共享目录的挂载设置。
注意将文件系统类型设置为nfs,挂载参数建议添加_netdev(设备需要网络)
若添加soft,intr参数可以实现软挂载,允许在网络中断时放弃挂载。
[root@localhost opt]# vim /etc/fstab
192.168.197.171:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0
强制卸载NFS
第一步:服务端添加硬盘并重启,服务端和客户端都修改名称
客户端修改
[root@localhost ~]# hostnamectl set-hostname client
[root@localhost ~]# su
[root@client ~]#
服务器端修改
[root@localhost ~]# hostnamectl set-hostname server
[root@localhost ~]# su
[root@server ~]#
第二步:格式化并挂载刚添加的硬盘
格式化磁盘步骤省略,如有疑问查看我之前博客
[root@server ~]# vim /etc/fstab
[root@server ~]# mount -a
[root@server ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 xfs 20G 4.1G 16G 21% /
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.0M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 52M 10G 1% /home
/dev/sda1 xfs 6.0G 174M 5.9G 3% /boot
tmpfs tmpfs 183M 8.0K 183M 1% /run/user/42
tmpfs tmpfs 183M 0 183M 0% /run/user/0
/dev/sdb1 xfs 20G 33M 20G 1% /mnt
第三步:安装nfs-utils rpcbind,并设置为开机自启
[root@server ~]# yum install nfs-utils rpcbind -y
[root@server ~]# systemctl enable 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 enable rpcbind.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rpcbind.service to /usr/lib/systemd/system/rpcbind.service.
第四步:设置共享目录,启动服务并关闭防护墙
[root@server ~]# vim /etc/exports
/mnt 192.168.197.0/24(rw,sync,no_root_squash)
[root@server ~]# systemctl start nfs
[root@server ~]# systemctl start rpcbind
[root@server ~]# netstat -ntap | grep rpc
tcp 0 0 0.0.0.0:35312 0.0.0.0:* LISTEN 14124/rpc.statd
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 14125/rpc.mountd
tcp6 0 0 :::20048 :::* LISTEN 14125/rpc.mountd
tcp6 0 0 :::58102 :::* LISTEN 14124/rpc.statd
[root@server ~]# systemctl stop firewalld.service
[root@server ~]# setenforce 0
第五步:查看本机发布的NFS共享目录
[root@server ~]# showmount -e
Export list for server:
/mnt 192.168.197.0/24
第六步:进客户端,关闭防火墙,安装httpd服务
[root@client ~]# systemctl stop firewalld.service
[root@client ~]# setenforce 0
[root@client ~]# yum install httpd -y
第七步:手动挂载NFS共享目录或者使用自动挂载
[root@client ~]# mount 192.168.197.173:/mnt /var/www/html
[root@client ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 xfs 20G 4.1G 16G 21% /
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.0M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 37M 10G 1% /home
/dev/sda1 xfs 6.0G 174M 5.9G 3% /boot
tmpfs tmpfs 183M 12K 183M 1% /run/user/42
tmpfs tmpfs 183M 0 183M 0% /run/user/0
192.168.197.173:/mnt nfs4 20G 32M 20G 1% /var/www/html
[root@client ~]# umount /var/www/html
[root@client ~]# vim /etc/fstab
192.168.197.173:/mnt /var/www/html nfs defausts,_netdev 0 0
[root@client ~]# mount -a
[root@client ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 xfs 20G 4.1G 16G 21% /
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.0M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 37M 10G 1% /home
/dev/sda1 xfs 6.0G 174M 5.9G 3% /boot
tmpfs tmpfs 183M 12K 183M 1% /run/user/42
tmpfs tmpfs 183M 0 183M 0% /run/user/0
192.168.197.173:/mnt nfs4 20G 32M 20G 1% /var/www/html
第八步:配置httpd网页并开启服务
[root@client ~]# cd /var/www/html
[root@client html]# ls
[root@client html]# vim index.html
this is nfs web
[root@client html]# systemctl start httpd.service
用客户端的网址登陆
第九步:发现服务器端也有了刚刚配置的内容
[root@server ~]# cd /mnt
[root@server mnt]# ls
index.html
[root@server mnt]# cat index.html
this is nfs web
第十步:设置服务器端NFS服务断掉,开始强制卸载
[root@server mnt]# systemctl stop nfs
[root@server mnt]#
'发现客户端使用df -hT 卡死'