代码改变世界

Openstack 本地yum源配置

2014-09-16 18:10  陈尚华  阅读(1725)  评论(0编辑  收藏  举报

主机配置:

主机名             IP(Static)                        系统                                           配置                          角色

yumserver     192.168.20.21       CentOS-6.5-x86_64-minimal           2CPU,4G,200G,1网卡        yumserver


1.yum源文件下载

(1).下载必要工具:

[root@yumserver ~]# yum -y install wget

(2).下载yum源到本地:

[root@yumserver ~]# mkdir -p /wget-yum

[root@yumserver ~]# cd /wget-yum

下载centos6.5源:

[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 isos | xarge rm -rf

[root@yumserver wget-yum]# find ./ -name i386 | xarge rm -rf

(4).调整目录结构:

[root@yumserver wget-yum]# mv mirrors.sohu.com/centos ./

[root@yumserver wget-yum]# rm -rf mirrors.sohu.com

[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

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;

    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;

}

[root@yumserver wget-yum]# vi /etc/nginx/conf.d/default.conf

server {

    listen       80;

    server_name  openstack.chensh.net;

    #charset koi8-r;

    #access_log  /var/log/nginx/log/host.access.log  main;

#   location / {

#       root   /usr/share/nginx/html;

#       index  index.html index.htm;

#   }

    location / {

        #root   html;

        root /wget-yum;

        autoindex on;

        index  index.html index.htm;

    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html

    #

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root   /usr/share/nginx/html;

    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80

    #

    #location ~ \.php$ {

    #    proxy_pass   http://127.0.0.1;

    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

    #

    #location ~ \.php$ {

    #    root           html;

    #    fastcgi_pass   127.0.0.1:9000;

    #    fastcgi_index  index.php;

    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

    #    include        fastcgi_params;

    #}

    # deny access to .htaccess files, if Apache's document root

    # concurs with nginx's one

    #

    #location ~ /\.ht {

    #    deny  all;

    #}

}

[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 1000 padraig

[root@yumserver ~]# useradd -u 1000 -g padraig -m padraig -d /home -s /bin/bash

(3).解压rpm:

[root@yumserver ~]# rpm -i rdo-release-icehouse-4.src.rpm

(4).修改文件内容,指向本地yum源:

[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

Source8:        CentOS-Openstack.repo

Source9:        RPM-GPG-KEY-CentOS-openstack

%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

install -p -D -m 644 %{SOURCE8} %{buildroot}%{_sysconfdir}/yum.repos.d/CentOS-Openstack.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

install -Dpm 644 %{SOURCE9} %{buildroot}%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-CentOS-openstack


for repo in rdo-release foreman puppetlabs epel CentOS-Openstack; do

(5).修改SOURCES文件内容,并增加相应文件:

[root@yumserver SPECS]# cd ../SOURCES

[root@yumserver SOURCES]# ls

CentOS-Openstack.repo  epel.repo  foreman.repo  puppetlabs.repo  rdo-release.repo  RPM-GPG-KEY-CentOS-openstack  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

/letv/yum-repo/openstack/openstack-icehouse/updates

[root@yumserver updates]# createrepo x86_64

**********************************************************************************************************************************