部署YUM仓库和NFS共享服务

YUM 的前身是 YUP(Yellow dog Updater,Yellow dog Linux 的软件更新器),最初由TSS 公司(Terra Soft Solutions,INC.)使用 Python 语言开发而成,后来由杜克大学(DuckUniversity)的 Linux 开发队伍进行改进,命名为YUM(Yellow dog Updater Modified)

一、准备软件安装源(服务器端)

yum仓库配置文件

位置:/etc/yum.repos.d

1、准备软件仓库目录

[root@localhost ~]# mkdir -p /var/ftp/centos7
[root@localhost ~]# cp -rf/media/cdrom/* /varftp/centos7

对于用户搜集的非 CentOS7光盘自带的更多其他软件包(必须包括存在依赖关系的所有安装文件),除了准备相应的目录之外,还需要手动创建repodata 数据文件,这就要用到createrepo 工具(需要从 CentOS7光盘中安装)

[root@localhost ~]# mkdir -p /var/ftp/centos7
[root@localhost ~]# cp -rf/media/cdrom/* /varftp/centos7root@localhost ~]# mkdir -p /var/ftp/centos7
[root@localhost ~]# cp -rf/media/cdrom/* /varftp/centos7
//以现有的 repodata 目录为样板

2、安装并启用csftpd服务

[root@locahost ~]# rpm -ivh /media/cdrom/Packages/vsftpd-3.0.2-21.el7.x86 64.rpm
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd
Created     symlink    from     /etcsystemd/system/multi-user.target.wants/vsftpd.service        to/usr/lib/systemd/system/vsftpd.service
配置软件仓库位置(客户端)
[root@localhost ~]# vi /etc/yum.repos.d/centos7.repo
[base]                //仓库类别
name=CentOS 7.3            //仓库名称
baseurl=ftp://192.168.4.254/centos7        //URL访问路径
enabled=1            //启用此软件仓库
gpgcheck=1            //验证软件包的签名
gpgkey=file://etc/pki/rpm-gPg/RPM-GPG-KEY-CentOS-7    //GPG公钥文件的位置
[other]
name=Other RPM Packages
baseurl=ftp://192.168.4.254/other
enabled=1
gpgcheck=0            //不验证软件包的签名

二、使用yum工具管理软件包

1、yum list——查询软件包列表
[root@localhost ~]# yum list
[root@localhost ~]# yum repolist ##列出yum所有仓库
    • 若执行“yum listinstalled”命令,则表示只列出系统中已安装的软件包
    • 若执行“yum listavailable”命令,则表示只列出软件仓库中可用(尚未安装)的软件包
    • 若执行“yum listupdates”命令,则表示只列出可以升级版本的软件包
2、yum info——查询软件包的描述信息
[root@localhost ~]# yum info httpd(软件包名字)
3、yum search——模糊查询指定的软件包
##加上all可以扩大范围
[root@localhost ~]# yum search all httpd(软件包名字)
4、yum whatprovides——精确查找
[root@localhost ~]# yum whatprovides netstat(软件包名字)
5、yum grouplist或yum groupinfo——列出该软件分组所有的软件包
[root@localhost ~]# yum grouplist
[root@localhost ~]# yum groupinfo 

安装、升级、卸载软件包

install

安装

yum groupinstall安装整个组

update

升级

yum groupupdate升级整个组

remove

卸载

yum groupremove卸载整个组

yum history

查看当前yum操作历史

yum history undo

加入序号卸载序号里安装的软件

yum history redo

加入序号重新执行序号里的操作

yum基本用法

1、主配置文件解析
[root@localhost]# /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录
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
2、yum仓库文件位置
默认的yum仓库 是centos官方的yum源,需要联网才可以使用;
[root@localhost yum.repos.d]# ls /etc/yum.repos.d/
常见的几个文件:
CentOS-Debuginfo.repo          //这个是debug包,尤其和内核相关的更新和软件安装
CentOS-Base.repo              //这个是联网基础的源,一般都用这个
CentOS-Vault.repo            //这个是最近新版本的加入的老版本的yum源配置
CentOS-Media.repo            //这个是使用光盘挂载后调用的文件
3、日志文件
[root@localhost yum.repos.d]# cat /var/log/yum.log         //查看日志文件

搭建yum仓库的方式

  • FTP服务:ftp://ip地址/站点里路径
  • HTTP服务:http://域名或者ip地址/站点里的路径
  • 本地目录:file://绝对路径 (file:///mnt 此处第三个/为根目录
1、搭载本地yum仓库
(1)光驱中镜像文件进行挂载
[root@localhost ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -Th    //查看下挂载
/dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt

(2)切换到 /etc/yum.repo.d 目录 将自带的仓库移走
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak    #新建一个文件夹用来存放原来的.repo文件
[root@localhost yum.repos.d]# mv *.repo bak/    #将原来的.repo文件移走
[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
[root@localhost yum.repos.d]#yum clean all   //清除一下yum
[root@localhost yum.repos.d]#yum list   //列出yum
2、搭建阿里云仓库(http方式外网环境)
[root@localhost yum.repos.d]# vim ali.repo
[ali]
name=aliyun
baseurl=https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=file:///opt/RPM-GPG-KEY-CentOS-7

备注:可以把阿里的校验文件下载到本地,就可以在安装软件包时进行完整性校验了。
如果不需要校验,gpgcheck=0即可
[root@localhost yum.repos.d]#yum clean all   //清除一下yum缓存
[root@localhost yum.repos.d]#yum -y install wget   //测试

在阿里镜像站找到epel下载链接:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

[root@localhost yum.repos.d]#yum clean all
[root@centos7 ~]#yum -y install nginx        //测试
3、ftp方式搭建云仓库
服务端:192.168.10.101
客户端:192.168.10.102
(1)服务端安装vsftp服务
[root@sesrver ~]# yum -y install vsftpd 

(2)服务端切换到 ftp目录下新建一个centos7,other目录
[root@sesrver ftp]# mkdir centos7
[root@sesrver ftp]# ls
centos7  pub

(3)服务端将光驱里的文件包全部拷到centos7里面
[root@sesrver ftp]#mount /dev/sr0 /mnt/
[root@sesrver ftp]# cp -rf /mnt/* centos7/ &                                //&代表后台运行应为文件较大

[root@sesrver ftp]#jobs  #查看shell作业信息(后台下载的)
[root@sesrver ftp]# cd centos7/
[root@sesrver centos7]# ls                                   //已将安装包文件拷入
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

(4)服务端开启相关服务,关闭防火墙和selinux
[root@sesrver repodata]# systemctl stop firewalld.service
[root@sesrver repodata]# setenforce 0
[root@sesrver repodata]# systemctl start vsftpd   //重启vsftpd服务
[root@sesrver ftp]#netstat -natp | grep ftp   //过滤查找ftp
tcp6       0      0 :::21                   :::*                    LISTEN      20518/vsftpd

#客户端安装ftp 服务并启动关闭防火墙和selinux
[root@client yum.repos.d]# yum install ftp
[root@client repodata]# systemctl stop firewalld.service
[root@client repodata]# setenforce 0
#测试ftp服务是否正常
[root@client yum.repos.d]# ftp 192.168.10.101

(5)客户端编写yum仓库文件
[root@client yum.repos.d]# vim centos7.repo
[centos7]
name=centos7

baseurl=ftp://192.168.10.101/centos7
enabled=1
gpgcheck=0

[root@client ftp]#yum clean all
[root@client ftp]#yum list
[root@client yum.repos.d]# yum install dhcp
4、http方式搭建云仓库
(1)服务器端安装httpd
[root@localhost ~]# yum -y install httpd

(2)创建仓库目录
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mkdir centos7


(3)将光盘上的文件拷贝到httpd网站根目录
[root@localhost html]# cp -rf /media/cdrom/* /var/www/html/centos7/

(4)客户端修改仓库文件

[ftpyum]
name=ftpyum
baseurl=http://192.168.10.101/centos7
gpgcheck=0
enabled=1
5、从yum仓库将rpm包拉取到本地并制作本地yum仓库
(1)安装所需软件包
[root@localhost ~]# yum -y install createrepo yum-utils

(2)创建下载目录
[root@localhost ~]# mkdir /opt/myrepo
[root@localhost ~]# cd /opt/myrepo/

(3)查看yum仓库中的源标识
[root@localhost myrepo]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识                       源名称                        状态
httpyum                      httpyum                       4,070
repolist: 4,070

(4)下载
[root@localhost myrepo]# reposync -r httpyum

备注:
-r:下载指定的源标识
如果要下载所有的源,只需要执行reposync即可

(5)生成repodate
[root@localhost myrepo]# createrepo /opt/myrepo/centos7/
Spawning worker 0 with 4070 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost myrepo]# ls /opt/myrepo/centos7/
Packages  repodata

四、NFS共享文件(network file system)

单节点模式(安全偏低,无法解决单点问题)

GFS:分布式

1:搭建过程
#服务器端:192.168.10.101
[root@localhost httpd]#systemctl stop firewalld
[root@localhost httpd]#setenforce 0
[root@localhost share]#yum install nfs-utils.x86_64  -y
#安装软件包盘用作共享使用


#新建共享目录
[root@localhost httpd]#mkdir /share
[root@localhost httpd]#cd /share/
[root@localhost share]#chmod -R 777 /share/
#修改权限
[root@localhost share]#vim /etc/exports
#编辑配置文件
/share *
/share 192.168.10.0/24(rw,sync,no_root_squash)
#共享目录  网段           读写,同步,无root权限

#重启rpcbind和nfs服务
[root@localhost ~]# systemctl start rpcbind 
[root@localhost ~]# systemctl start nfs 
[root@localhost ~]#exports -vr
#不重启生效
[root@localhost share]#exportfs -v
#查看详细的nfs信息

[root@localhost ~]# netstat -anpt | grep rpc
[root@localhost share]# showmount -e
Export list for localhost.localdomain:
/share (everyone)


#客户机端:192.168.10.102
[root@localhost ~]#mkdir /data   //创建一个挂目录
#挂载服务器端地址文件在自己目录下
[root@localhost ~]# mount 192.168.10.101:/share /data
[root@localhost ~]#df -hT
192.168.10.101:/share  nfs4       17G  8.6G  8.5G   51% /data
#测试一下
#服务器 touch 一个文件,在客户端看看有没有
[root@localhost share]# touch 1.txt
#客户端:
[root@localhost yum.repos.d]# cd /data
[root@localhost data]# ls
1.txt
#因为给了 share 777权限,因此客户端也可以 touch 文件
[root@localhost data]# touch 2.txt
[root@localhost data]# ls
1.txt  2.txt

#强制解挂载
[root@localhost ~]# umount /mnt
t umount. nfs: /mnt : device is busy 
[root@localhost ~]# umount -lf /mnt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值