OpenStack yum 소스 구축

8492 단어 openstackyumRepo
기업 의 OpenStack 개인 클 라 우 드 에 대해 안전 과 일부 요 소 를 고려 하여 일부 서버 가 공공 네트워크 에 접근 하지 못 해 서버 가 일부 RPM 패 키 지 를 업데이트 하지 못 하 는 동시에 내부 에 OpenStack 의 새로운 특성 개발 수요, 버 전의 유지 와 업그레이드 가 자주 있 기 때문에 기업 의 개인 적 인 openstack yum 소스 를 구축 할 필요 가 있다. openstack yum 소스 를 구축 하 는 데 두 가지 절차 가 있 습 니 다. 1. 동기 화 (다운로드) 공식 소스 는 기업 yum 서버 에 있 습 니 다.2. repo 를 다시 만 들 고 nginx (apache) 를 통 해 발표 합 니 다.  
Overview
     Redhat OpenStack 홈 페이지 설치 매 뉴 얼 의 경우 OpenStack 을 설치 하려 면 두 가지 모두 8 개의 repo 가 필요 합 니 다.    1). Centos 소스       CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo     2). openstack 소스 및 관련 의존 소스 (epel, foreman, puppet):          epel.repo  foreman.repo  puppetlabs.repo  rdo-release.repo
현지 소스 구축 절차
1. yum 원본 파일 다운로드
(1). 필요 한 도구 다운로드:
[root@yumserver ~]# yum -y install wget
[root@yumserver ~]# yum -y install createrepo
(2). yum 원본 을 로 컬 로 다운로드:
[root@yumserver ~]# mkdir -p /wget-yum
[root@yumserver ~]# cd /wget-yum
Centos 원본 다운로드:
[root@yumserver wget-yum]# wget -S -c -r -np -L http://mirrors.sohu.com/centos/6.5/
foreman 원본 다운로드:
[root@yumserver wget-yum]# wget -S -c -r -np -L http://yum.theforeman.org/plugins/1.5/el6/
[root@yumserver wget-yum]# wget -S -c -r -np -L http://yum.theforeman.org/releases/1.5/el6/
epel 원본 다운로드:
[root@yumserver wget-yum]# wget -S -c -r -np -L http://mirrors.yun-idc.com/epel/6/
puppetlabs 원본 다운로드:
[root@yumserver wget-yum]# wget -S -c -r -np -L https://yum.puppetlabs.com/el/6/
openstack 원본 다운로드:
[root@yumserver wget-yum]# wget -S -c -r -np -L https://repos.fedorapeople.org/repos/openstack/openstack-havana/
[root@yumserver wget-yum]# wget -S -c -r -np -L https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/
(3). 필요 하지 않 은 패키지 와 파일 삭제:
[root@yumserver wget-yum]# find ./ -name index.html* | xarge rm -rf
[root@yumserver wget-yum]# find ./ -name fedora-20 | xarge rm -rf
[root@yumserver wget-yum]# find ./ -name fedora-19 | xarge rm -rf
[root@yumserver wget-yum]# find ./ -name i386 | xarge rm -rf
(4). 디 렉 터 리 구조 조정:
[root@yumserver wget-yum]# mkdir foreman
[root@yumserver wget-yum]# mv yum.theforeman.org/plugins foreman/
[root@yumserver wget-yum]# mv yum.theforeman.org/releases foreman/
[root@yumserver wget-yum]# rm -rf yum.theforeman.org
[root@yumserver wget-yum]# mv mirrors.yun-idc.com/epel ./
[root@yumserver wget-yum]# rm -rf mirrors.yun-idc.com
[root@yumserver wget-yum]# mkdir puppetlabs
[root@yumserver wget-yum]# mv yum.puppetlabs.com/el /puppetlabs/
[root@yumserver wget-yum]# rm -rf yum.puppetlabs.com
[root@yumserver wget-yum]# mv repos.fedorapeople.org/repos/openstack ./
[root@yumserver wget-yum]# rm -rf repos.fedorapeople.org
[root@yumserver wget-yum]# ls
centos  epel  foreman  openstack  puppetlabs
2. nginx 설정:
[root@yumserver wget-yum]# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
[root@yumserver wget-yum]# yum -y install nginx
[root@yumserver wget-yum]# vi /etc/nginx/nginx.conf
 
<span style="color: rgb(69, 69, 69); font-family: Arial, sans-serif; font-size: 14px; line-height: 20px;">[root@yumserver wget-yum]# vi /etc/nginx/nginx.conf</span>
user  nginx;
worker_processes  8;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  8192;
}
http {
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
    charset utf-8,gbk; 
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$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.log  main;
    sendfile        on;
    keepalive_timeout  65;
    include /etc/nginx/conf.d/*.conf;
}
[root@yumserver wget-yum]# vi /etc/nginx/conf.d/default.conf
 
server {
    listen       80;
    server_name  openstack-yum-server.cn;
    location / {
        #root   html;
        root /wget-yum;
        autoindex on;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

[root@yumserver wget-yum]# /etc/init.d/nginx restart
3. release. rpm 제작:
(1). icehouse 소스 패키지 다운로드:
[root@yumserver ~]# wget https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-4.src.rpm
(2). padraig 사용자 와 그룹 만 들 기:
[root@yumserver ~]# groupadd -g 2000 padraig
[root@yumserver ~]# useradd -u 2000 -g padraig -m padraig -d /home -s /bin/bash
(3). rpm 압축 을 풀 고 각. repo 파일 의 url 을 수정 합 니 다.
[root@yumserver ~]# rpm -i rdo-release-icehouse-4.src.rpm
. repo 파일 수정 rdo - release. repo 를 예 로 들 면
[openstack-havana]
name=OpenStack Havana Repository
baseurl=http://openstack-yum-server.cn/openstack/openstack-havana/epel-6/
enabled=1
skip_if_unavailable=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Havana
priority=98

(4). spec 파일 내용 수정:
[root@yumserver ~]# cd rpmbuild/
[root@yumserver rpmbuild]# 
SOURCES  SPECS
[root@yumserver ~]# cd SPECS
[root@yumserver SPECS]# vi rdo-release.spec 
URL:            https://github.com/redhat-openstack/rdo-release
Source0:        rdo-release.repo
Source1:        RPM-GPG-KEY-RDO-Icehouse
Source2:        foreman.repo
Source3:        RPM-GPG-KEY-foreman
Source4:        puppetlabs.repo
Source5:        RPM-GPG-KEY-puppetlabs
Source6:        epel.repo
Source7:        RPM-GPG-KEY-EPEL-6
 
%install
install -p -D -m 644 %{SOURCE0} %{buildroot}%{_sysconfdir}/yum.repos.d/rdo-release.repo
install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/yum.repos.d/foreman.repo
install -p -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/yum.repos.d/puppetlabs.repo
install -p -D -m 644 %{SOURCE6} %{buildroot}%{_sysconfdir}/yum.repos.d/epel.repo
#GPG Keys
install -Dpm 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse
install -Dpm 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-foreman
install -Dpm 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
install -Dpm 644 %{SOURCE7} %{buildroot}%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
for repo in rdo-release foreman puppetlabs epel ; do
(5). SOURCES 파일 내용 을 수정 하고 해당 파일 을 추가 합 니 다.
[root@yumserver SPECS]# cd ../SOURCES
[root@yumserver SOURCES]# ls
epel.repo  foreman.repo  puppetlabs.repo  rdo-release.repo  RPM-GPG-KEY-EPEL-6  RPM-GPG-KEY-foreman  RPM-GPG-KEY-puppetlabs  RPM-GPG-KEY-RDO-Icehouse
(6). rpm 재 포장:
[root@yumserver SPECS]# yum -y install rpm-build
[root@yumserver SPECS]# pwd
/root/rpmbuild/SPECS
[root@yumserver SPECS]# rpmbuild -ba rdo-release.spec
4. 의존 관 계 를 해결 하고 창 고 를 만 듭 니 다.
[root@yumserver updates]# ls
repodata  x86_64
[root@yumserver updates]# pwd
yum-repo/openstack/openstack-icehouse/updates
[root@yumserver updates]# createrepo x86_64
 
5. repo RPM 패키지 업데이트:
createrepo x86_64 --update
**********************************************************************************************************************************
컴 파일 된 rpm 소스 패키지 예제:
new-rdo-release-havana-8.0.src.rpm new-rdo-release-icehouse-4.0.src.rpm
 
troubleshooting:
  •  yum repolist 출현 [root@controller yum.repos.d]# yum repolist Loaded plugins: axelget, fastestmirror, security Loading mirror speeds from cached hostfile http://openstack-yum-server/ceph/el6/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 403 Forbidden" Trying other mirror. http://openstack-yum-server/ceph/el6/noarch/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 403 Forbidden" Trying other mirror. .....   해결 방안: 1)      리 포 설정 마다 추가 proxy=None       [openstack-havana-updates]       .....       _proxy_=None 2)      방화벽 닫 기, service iptables stop
  • 주: 이 박문 은 진상 화 와 본인 이 한 것 입 니 다.

    좋은 웹페이지 즐겨찾기