对于企业Openstack私有云,由于安全等一些因素,部分服务器不能有新的Openstack特性开发需求,版本维护升级,所以搭建非常有必要企业私有openstackyum源。构建openstackyum源分两步:1、将官方源同步(下载)到企业yum服务器;2.重新创建repo并通过nginx(apache)发布它。概述以RedhatOpenstack官网的安装手册为例,安装Openstack需要两种repo,1)。Centos源CentOS-Base.repoCentOS-Debuginfo.repoCentOS-Media.repoCentOS-Vault.repo2)。openstack源码及相关依赖源(epel、foreman、puppet):epel.repoforeman.repopuppetlabs.repordo-release.repo构建本地源步骤一、下载yum源文件(一)。下载必要的工具:[root@yumserver~]#yum-yinstallwget[root@yumserver~]#yum-yinstallcreaterepo(2)。下载yum源到本地:[root@yumserver~]#mkdir-p/wget-yum[root@yumserver~]#cd/wget-yum下载Centos源:[root@yumserverwget-yum]#wget-S-c-r-np-Lhttp://mirrors.sohu.com/centos/6.5/下载工头源:[root@yumserverwget-yum]#wget-S-c-r-np-Lhttp://yum.theforeman.org/plugins/1.5/el6/[root@yumserverwget-yum]#wget-S-c-r-np-Lhttp://yum.theforeman.org/releases/1.5/el6/下载epel源:[root@yumserverwget-yum]#wget-S-c-r-np-Lhttp://mirrors.yun-idc.com/epel/6/下载puppetlabs源码:[root@yumserverwget-yum]#wget-S-c-r-np-Lhttps://yum.puppetlabs.com/el/6/下载openstack源码:[root@yumserverwget-y嗯]#wget-S-c-r-np-Lhttps://repos.fedorapeople.org/repos/openstack/openstack-havana/[root@yumserverwget-yum]#wget-S-c-r-np-Lhttps://repos.fedorapeople.org/repos/openstack/openstack-icehouse/(3).删除不需要的软件包和文件:[root@yumserverwget-yum]#find./-nameindex.html*|xargerm-rf[root@yumserverwget-yum]#find./-namefedora-20|xargerm-rf[root@yumserverwget-yum]#find./-namefedora-19|xargerm-rf[root@yumserverwget-yum]#find./-namei386|xargerm-rf(4).调整目录结构:[root@yumserverwget-yum]#mkdirforeman[root@yumserverwget-yum]#mvyum.theforeman.org/pluginsforeman/[root@yumserverwget-yum]#mvyum.theforeman.org/releasesforeman/[root@yumserverwget-yum]#rm-rfyum.theforeman.org[root@yumserverwget-yum]#mvmirrors.yun-idc.com/epel./[root@yumserverwget-yum]#rm-rfmirrors.yun-idc.com[root@yumserverwget-yum]#mkdirpuppetlabs[root@yumserverwget-yum]#mvyum.puppetlabs.com/el/puppetlabs/[root@yumserverwget-yum]#rm-rfyum.puppetlabs.com[root@yumserverwget-yum]#mvrepos.fedorapeople.org/repos/openstack./[root@yumserverwget-yum]#rm-rfrepos.fedorapeople.org[root@yumserverwget-yum]#lscentosepelforemanopenstackpuppetlabs#p#2.nginx配置:[root@yumserverwget-yum]#rpm-ivhhttp://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm[root@yumserverwget-yum]#yum-yinstallnginx[root@yumserverwget-yum]#vi/etc/nginx/nginx.conf[root@yumserverwget-yum]#vi/etc/nginx/nginx.confusernginx;worker_processes8;error_log/var/log/nginx/error.logwarn;pid/var/run/nginx.pid;events{worker_connections8192;}http{autoindexon;autoindex_exact_sizeoff;autoindex_localtimeon;charsetutf-8,gbk;include/etc/nginx/mime.types;default_typeapplication/octet-stream;log_formatmain'$remote_addr-$remote_user[$time_local]"$request"''$status$body_bytes_sent"$http_referer"''"$http_user_agent""$http_x_forwarded_for"';access_log/var/log/nginx/access.logmain;sendfileon;keepalive_timeout65;include/etc/nginx/conf.d/*.conf;}[root@yumserverwget-yum]#vi/etc/nginx/conf.d/default.confserver{listen80;server_nameopenstack-yum-server.cn;location/{#roothtml;root/wget-yum;autoindexon;indexindex.htmlindex.htm;}error_page500502503504/50x.html;location=/50x.html{root/usr/share/nginx/html;}}[root@yumserverwget-yum]#/etc/init.d/nginx重启3.Release.rpm制作:(1).下载icehouse源码包:[root@yumserver~]#wgethttps://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-4.src.rpm(2)。创建padraig用户和组:[root@yumserver~]#groupadd-g2000padraig[root@yumserver~]#useradd-u2000-gpadraig-mpadraig-d/home-s/bin/bash(3)。解压rpm,修改每个.repo文件的url:[root@yumserver~]#rpm-irdo-release-icehouse-4.src.rpm修改.repo文件为rdo-release.repo为例子[openstack-havana]name=OpenStackHavanaRepositorybaseurl=http://openstack-yum-server.cn/openstack/openstack-havana/epel-6/enabled=1skip_if_unavailable=0gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Havanapriority=98(4).修改.spec文件内容:[root@yumserver~]#cdrpmbuild/[root@yumserverrpmbuild]#SOURCESSPECS[root@yumserver~]#cdSPECS[root@yumserverSPECS]#virdo-release.specURL:https://github.com/redhat-openstack/rdo-releaseSource0:rdo-release.repoSource1:RPM-GPG-KEY-RDO-IcehouseSource2:foreman.repoSource3:RPM-GPG-KEY-foremanSource4:puppetlabs.repoSource5:RPM-GPG-KEY-puppetlabsSource6:epel.repoSource7:RPM-GPG-KEY-EPEL-6%installinstall-p-D-m644%{SOURCE0}%{buildroot}%{_sysconfdir}/yum.repos.d/rdo-release.repoinstall-p-D-m644%{SOURCE2}%{buildroot}%{_sysconfdir}/yum.repos.d/foreman。repoinstall-p-D-m644%{SOURCE4}%{buildroot}%{_sysconfdir}/yum.repos.d/puppetlabs.repoinstall-p-D-m644%{SOURCE6}%{buildroot}%{_sysconfdir}/yum.repos.d/epel.repo#GPGKeysinstall-Dpm644%{SOURCE1}%{buildroot}%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouseinstall-Dpm644%{SOURCE3}%{buildroot}%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-foremaninstall-Dpm644%{SOURCE5}%{buildroot}%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-puppetlabsinstall-Dpm644%{SOURCE7}%{buildroot}%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6forrepoinrdo-releaseforemanpuppetlabsepel;做(5)。修改SOURCES文件内容,添加对应文件:[root@yumserverSPECS]#cd../SOURCES[root@yumserverSOURCES]#lsepel.repoforeman.repopuppetlabs.repordo-release.repoRPM-GPG-KEY-EPEL-6RPM-GPG-KEY-foremanRPM-GPG-KEY-puppetlabsRPM-GPG-KEY-RDO-Icehouse(6)。重新打包rpm:[root@yumserverSPECS]#yum-yinstallrpm-build[root@yumserverSPECS]#pwd/root/rpmbuild/SPECS[root@yumserverSPECS]#rpmbuild-bardo-release.spec#p#4.解决依赖并创建仓库:[root@yumserverupdates]#lsrepodatax86_64[root@yumserver更新]#pwdyum-repo/openstack/openstack-icehouse/updates[root@yumserver更新]#createrepox86_645。repo更新RPM包:createrepox86_64--update*******************************************************************************************************************************************编译后的rpm源代码包示例:new-rdo-release-havana-8.0.src.rpmnew-rdo-release-icehouse-4.0.src.rpmtroubleshooting:yumrepolist出现[root@controlleryum.repos.d]#yumrepolistLoadedplugins:axelget,fastestmirror,securityLoadingmirrorspeedsfrom缓存的主机文件http://openstack-yum-server/ceph/el6/x86_64/repodata/repomd.xml:[Errno14]PYCURLERROR22-“请求的URL返回错误:403Forbidden”正在尝试其他镜像。http://openstack-yum-server/ceph/el6/noarch/repodata/repomd.xml:[Errno14]PYCURLERROR22-"TherequestedURLreturnederror:403Forbidden"Tryingothermirror......解决方案:1)每次个repo配置新增加proxy=None[openstack-havana-updates]....._proxy_=None2)关闭防火墙,serviceiptablesstop原文来自:http://blog.csdn.net/wsfdl/article/details/41808939