由于工作从事OpenStack方面,经常需要yum安装一些OpenStack组件,以前由于懒而且yum也能正常下载安装OpenStack的rpm包所以也就懒得搭建OpenStack本地源,昨天突然发现不能正常下载安装OpenStack的rpm包,于是就想自己搭建一个本地yum源,会搭建OpenStack本地yum源也就能很轻松搭建其他的yum源。
Yum(Yellow dog Updater, Modified)由Duke University团队,修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于RPM包管理的字符前端软件包管理器。能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。被Yellow Dog Linux本身,以及Fedora、Red Hat Enterprise Linux采用(以上来自维基百科)。获取rpm包一般有3种:wget命令下载包放到本地;打开yum缓存,yum安装的包不会自动删除而是存放在本地;最后一种是使用reposync命令同步yum源,这种最简单但是包会比较多(前提是所同步的源支持使用reposync,不行就换一个嘛)。还是由于懒,所以当然选择使用reposync工具同步yum源了,简单省事还能一个不差同步需要的yum源。最后说明一点我们本地机器通过http方式获取本地yum服务上的资源。
首先在/etc/yum.repos.d/文件夹里放入所需要同步的yum配置文件,执行命令yum clean all清除yum缓存后再执行命令yum makecache生成新的缓存,生成缓存完成后执行命令yum repolist查看自己的yum列表,一切正常的话可以看到自己所配置的yum,此次以同步OpenStack Ocata版本yum为例,下图红圈处即为本次所同步的yum(默认所有机器都为x86_64)。
确定需要同步的yum在自己列表里后执行命令yum -y install httpd createrepo yum-utils安装所需要的工具,安装完成后执行命令reposync --repoid=centos-openstack-ocata开始同步,所需时间根据所有包的大小和网速决定,同步结束后会在目录下出现名为centos-openstack-ocata文件夹,进入文件夹后里发现里面都是rpm包(因为OpenStack包在国内下载很慢所以在国外vps下载后再传回到本地,开启bbr后使用http方式下载较快,传回本地机器这部分教程省略)。
同步完成后在本地服务器上执行命令systemctl enable httpd和systemctl start httpd设置http服务开机自启并启动http服务,在http根目录/var/www/html/执行命令mkdir repo创建repo文件夹,将同步完成的centos-openstack-ocata文件夹移动到rpeo文件夹下后进入centos-openstack-ocata文件夹,执行命令createrepo /var/www/html/repo/centos-openstack-ocata创建yum源,创建完成后会发现多个repodata问文件夹,至此搭建本地yum源服务端工作完成。
在客户端需要创建repo配置文件,配置文件一般4行即可,以创建centos-openstack-ocata.repo为例:
[openstack-ocata] name=openstack-ocata baseurl=http://172.16.5.253/repo/centos-openstack-ocata/ #因为在http根目录下创建的/repo/centos-openstack-newton/文件夹,所以url链接如左边所示(配置文件里将备注部分删除) gpgcheck=0
将创建好的repo配置文件放到本地客户端/etc/yum.repos.d/文件夹下,命令yum clean all清除yum缓存后再执行命令yum makecache生成新的缓存,生成缓存完成后执行命令yum repolist查看自己的yum列表会发现多出一行id为openstack-ocata,最后显示rpm包数量,至此本教程结束。
文章评论