目录
1.部署YUM仓库服务
1.1 构建YUM软件仓库
YUM仓库简介:
yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。
yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。
软件仓库的提供方式:
网络源
FTP服务: ftp://…
HTTP服务: http://…
本地源
本地目录: file://…
YUM主配置文件:
位置:/etc/yum.conf
[root@localhost]# /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 $basearch代表硬件 $releasever系统版本比如7
keepcache=0 //是否保存缓存 0代表不保存,1代表保存
debuglevel=2 //调试级别了解即可
logfile=/var/log/yum.log // 日志文件位置
exactarch=1 //是否允许不同版本的rpm安装
obsoletes=1 //update 的一个参数是否可以允许旧版本的运行
gpgcheck=1 //验证秘钥
plugins=1 //是否允许插件1代表可以
installonly_limit=5 //保存几个内核 5代表5个
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
仓库设置文件:
位置:/etc/yum.repos.d/*.repo
#下面是默认仓库,是centos官方的yum源,需要联网才可以使用
[root@localhost yum.repos.d]# ls /etc/yum.repos.d/
bak CentOS-Debuginfo.repo CentOS-Sources.repo
CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-Media.repo
日志文件:
位置:/var/log/yum.log
[root@localhost yum.repos.d]# cat /var/log/yum.log //查看日志文件
1.2 使用YUM工具管理软件包
查询软件包
#显示可用的安装包
[root@localhost ~]# yum list httpd
#显示安装包详细信息
[root@localhost ~]#yum info [软件名]
#根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来
[root@localhost ~]#yum search <关键词>
#你知道某个命令却不知道具体的包可以用此命令查找
[root@localhost ~]#yum whatprovides <关键词>
查询软件包组
#安装包组的查询 不加包组名 就是显示所有
[root@localhost ~]#yum grouplist [包组名]
#不加包组名显示全部
[root@localhost ~]# yum groupinfo <包组名>
yum安装升级
#安装软件包
[root@localhost ~]# yum install httpd
#安装包组名
[root@localhost ~]# yum groupinstall gnome desktop
#更新安装包,可以单个也可以全部 后面加具体名称就是单个更新,不加就是全部更新。但是首先你要有更新的包组库否则也无法更新。
[root@localhost yum.repos.d]# yum upgrade
#组包更新
[root@localhost yum.repos.d]# yum groupupdate
软件卸载
#卸载已安装的软件必须加软件名
[root@localhost yum.repos.d]# yum remove httpd
#查看历史的使用记录,选择ID 1,2,3,4,5,可以使用yum history undo 4 进行卸载,这样对比remove好处是可以将所有的依赖都删除
[root@localhost yum.repos.d]# yum history
[root@localhost .ssh]# yum history undo 3 //3代表id号
#如果后悔 卸载 可以使用两种方式
yum history redo 4 (重新安装一遍)
yum history undo 6 (反悔卸载等于重新安装一遍)
搭建yum仓库
搭建本地yum仓库:
1.首先将光驱中的镜像文件进行挂载(先将虚拟机的光盘载入)
[root@localhost ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -Th //查看下挂载
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 37G 7.5G 30G 21% /
devtmpfs devtmpfs 977M 0 977M 0% /dev
tmpfs tmpfs 993M 0 993M 0% /dev/shm
tmpfs tmpfs 993M 9.1M 984M 1% /run
tmpfs tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 161M 854M 16% /boot
tmpfs tmpfs 199M 4.0K 199M 1% /run/user/42
tmpfs tmpfs 199M 52K 199M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt
2.切换到 yum.repo.d 目录 将自带的仓库移走,多个开启仓库文件可能会造成冲突无法使用
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv *.repo bak/
[root@localhost yum.repos.d]# ls
bak
3.新建yum仓库文件
[root@localhost yum.repos.d]# vim abc.repo
[abc]
name=abc
baseurl=file:///mnt
enabled=1
gpgcheck=0
#gpgkey=file:etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 //若gpgcheck=1
4.yum list 检查仓库 无报错信息即可正常使用
#/data/目录如果不存在,会自动创建
[root@localhost ]#yum -y install --downloadonly --downloaddir=/data/bind bind
搭建阿里云仓库(http外网环境)
1.切换到 yum.repo.d 目录 将自带的仓库移走
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv *.repo bak/
[root@localhost yum.repos.d]# ls
bak
2.新建yum仓库
[ali]
name=aliyun
#baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/ //开启哪个都可以正常使用,这边主要解释变量的作用
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/ //变量参见主配置文件2.1小节
gpgcheck=0
[epel] //epel源仓库
name=epel
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
gpgcheck=0
[update] //更新包仓库
name=update
baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/
gpgcheck=0
FTP方式搭建云仓库
1.服务端安装vsftp服务
[root@localhost ~]# yum install vsftpd.x86_64 -y
2.服务端切换到 ftp目录下新建一个centos7目录
[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# mkdir centos7 other
[root@localhost ftp]# ls
centos7 other pub
[root@localhost ftp]#
3.服务端将光驱里的文件包全部拷到centos7里面
[root@localhost ftp]# cp -rf /mnt/* centos7/ &
[root@localhost ftp]# cd centos7/
[root@localhost centos7]# ls //已将安装包文件拷入
[root@localhost ~]# cd /var/ftp/other
#建立数据库文件
[root@localhost other]# createrepo -g /mnt/repodata/repomd.xml ./
4.服务端开启相关服务,关闭防火墙和selinux
[root@localhost other]# systemctl stop firewalld.service
[root@localhost other]# setenforce 0
[root@localhost other]# systemctl start vsftpd
5.客户端安装ftp 服务并启动关闭防火墙和selinux
[root@localhost yum.repos.d]# yum install ftp
[root@localhost repodata]# systemctl stop firewalld.service
[root@localhost repodata]# setenforce 0
#服务器默认开启
[root@localhost yum.repos.d]# systemctl start ftp
6.测试ftp服务是否正常
[root@localhost yum.repos.d]# ftp 192.168.59.117
Connected to 192.168.59.117 (192.168.59.117).
220 (vsFTPd 3.0.2)
Name (192.168.59.117:root): ftp #随意起名
331 Please specify the password.
Password: #输入密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls #查看下是否正常
227 Entering Passive Mode (192,168,59,117,141,116).
150 Here comes the directory listing.
drwxr-xr-x 8 0 0 220 Oct 06 10:45 centos7
drwxr-xr-x 3 0 0 22 Oct 06 10:50 other
drwxr-xr-x 2 0 0 6 Jun 09 16:15 pub
226 Directory send OK.
ftp>
7.编写yum仓库文件
[root@localhost yum.repos.d]# vim centos7.repo
[centos7]
name=centos7
baseurl=ftp://192.168.59.117/centos7
enabled=1
gpgcheck=0
#=
[other]
name=other
baseurl=ftp://192.168.59.117/other
enabled=1
gpgcheck=0
8.测试是否yum可以正常使用
[root@localhost yum.repos.d]# yum install dhcp
2.NFS共享存储服务
2.1 使用NFS发布共享资源
NFS应用场景
在企业集群架构的工作场景中,特别是中小型网站公司,NFS网络文件系统一般被用来存储共享视频、图片等静态资源文件 。例如:把网站用户上传的文件放到NFS共享里,通过网络共享目录,让网络上的其他服务器能挂载访问共享目录内的数据。
NFS网络文件系统
NFS服务的实现依赖于RPC(远端过程调用);
需安装nfs-utils、rpcbind软件包;
系统服务有:nfs、rpcbind;
共享配置文件位于:/etc/exports
安装nfs-utils、rpcbind软件包
提供RPC支持的服务为rpcbind,提供NFS共享的服务为nfs
[root@localhost~]# yum -y install nfs-utils rpcbind
[root@localhost ~]# systemctl enable nfs
[root@localhost ~]# systemctl enable rpcbind
安装完成后,建议调整这两个服务为自启动状态,以便每次开机后自动启用
[root@localhost ~]# chkconfig nfs on
[root@localhost ~]# chkconfig rpcbind on
设置共享目录
NFS的配置文件为 /etc/exports,文件内容默认为空。在设置共享资源时,格式为:
目录位置 客户机地址(权限选项)
(1) 例如,若要将文件夹/opt/web 共享给192.168.100.120主机使用,允许读操作:
[root@localhost ~]# vi /etc/exports
(2) 若要将同一个目录给两个不同的主机,且分配不同的权限时,只要以空格分隔指定多个“客户机(权限选项)”即可。例如,若要将/var/ftp/pubilc 目录共享给两个客户机,分别给予只读、读写权限:
[root@localhost ~]# vi /etc/exports
/var/ftp/pub 192.168.1.54(ro) 192.168.1.77(rw)
启动NFS服务
[root@localhost ~]#systemctl restart rpcbind
[root@localhost ~]#systemctl restart nfc
[root@localhost ~]#netstat -anpt | grep 111
手动加载NFS共享服务时,应该先启动rpcbind,然后再启动nfs
查看本机发布的NFS共享资源
[root@localhost ~]#showmount -e
2.2 在客户机中访问NFS共享资源
NFS协议的目标时提供一种网络文件系统,因此对NFS共享的访问也使用 mount 命令挂载,对应的文件系统内心为nfs。既可以手动挂载,也可以加入fstab配置文件实现永久挂载(即开机自动挂载)。
安装rpcbind、nfs-utils软件包并启动服务
[root@localhost~]# yum -y install nfs-utils rpcbind
[root@localhost ~]# chkconfig rpcbind on
[root@localhost ~]# systemctl restart rpcbind
安装nfs-utils软件包后,客户机也可以使用showmount查看NFS服务器端共享了哪些目录,命令格式如下:
[root@localhost ~]# showmount -e 192.168.100.100(服务器的地址)
手动挂载NFS共享目录
以root用户身份执行mount操作,将NFS服务器共享的 /opt/web 目录挂载到本地目录 /var/www/html 。与挂载本地文件系统不同的是,设备位置处应该指出服务器的地址。
[root@localhost ~]# mount 192.168.100.100:/opt/web /var/www/html
创建测试文件:
[root@localhost ~]# vi /var/www/html/index.html
Real Web Server Document
完成挂载后,访问客户机的 /var/www/html 文件夹,实际上就相当于访问NFS服务器中的 /opt/web 文件夹,其中网络映射过程对于用户程序来说是透明的
fstab自动挂载
修改 /etc/fstab 配置文件,加入NFS共享目录的挂载设置;
注意将文件系统类型设为nfs,挂载参数建议设为netdev 。
[root@localhost ~]# vi /etc/fstab
......//省略部分信息
192.168.100.100:/opt/web /var/www/html nfs defaults,_netdev 0 0 //netdev 表示设备需要网络
强制卸载NFS
当客户端正在挂载使用,服务器端NFS服务突然停掉后,执行查看挂载命令会出现卡死现象。这个时候一般的umount命令是无法直接卸载的,需要加上 -lf 才能卸载,如下所示:
[root@localhost ~]# umount /mnt
umount:/mnt: device is busy
[root@localhost ~]# umount -lf /mnt
2.3 NFS客户端mount的挂载
1、查看服务端共享信息
showmount -e 192.168.10.1
Export list for lochsot:
/data/share 192.168.10.*
2、挂载文件系统
## mount -t nfs 服务端共享目录 客户端挂载目录
[root@localhost ~]# mount -t nfs 192.168.10.1:/data/share /local/share
3、查看挂载信息
[root@wqwang ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 528K 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda1 ext4 40G 9.3G 29G 25% /
192.168.10.1:/data/share /local/share
overlay overlay 40G 9.3G 29G 25%
tmpfs tmpfs 379M 0 379M 0% /run/user/0
4、去除客户端的挂载
[root@localhost ~]# umount /local/share
##或者-l强制执行
[root@localhost ~]# umount -l /local/share