主要完成了下面4個工作
1. 創(chuàng)建一個本地的目錄結(jié)構(gòu),以存放 rpm 包
2. 啟動一個 apache,使這些文件能夠遠程訪問
3. 寫一個 spec,并且用 rpmbuild 做成一個安裝包,用來在機器上安裝新的 repository 位置
4. 使用 yum downloadonly plugin 將需要的 rpm 包放到本地目錄下,然后使用 createrepo 命令創(chuàng)建 metadata
本來是希望能有一個類似于 nexus 這樣的 proxy host server 將遠程的 package cache 下來,找來找去,也找到了一個 nexus yum plugin,但這個 plugin 只支持手工的 deploy rpm package 到 nexus 上面,不能做 proxy 方式的。
寫寫步驟和遇到的問題吧。
準備工作
- 安裝 createrepo, yum install createrepo
- 安裝 yum download only plugin, yum -y install yum-downloadonly
- 安裝 rpmbuild, yum -y install rpm-build
- 確認已經(jīng)安裝了 apache nginx 之類的 http server
服務器步驟
- 首先是創(chuàng)建目錄結(jié)構(gòu),比如 mkdir -p /data/yum/centos/6/x86_64
- 先增加 chef 的源,rpm -Uvh http://rbel.frameos.org/rbel6
- 然后是通過 yum -y install rubygem-chef-server –downloadonly –downloaddir=/data/yum/centos/6/x86_64
- 這時,已經(jīng)可以去掉 chef 的公共源了,rpm -e rbel6-release
- 創(chuàng)建本地庫的 metadata,createrepo /data/yum/centos/6/x86_64,還有一些參數(shù)可用,比如 -p, pretty xml, -d create sqlite database files
- 配置 apache,修改 /etc/httpd/conf/httpd.conf,修改 DocumentRoot 和 Directory 位置,改為 /data,并啟動 httpd -k start,也可以使用 chkconfig –level 3 https on,每次開機啟動
客戶端步驟
- 首先要制作安裝 repository 位置的 rpm 包
- 創(chuàng)建文件 haha.repo,放到 /root/rpmbuild/SOURCES 目錄下,這個是將來 copy 到客戶端的 /etc/yum.repos.d/ 目錄下的配置文件,內(nèi)容為
[haha]
name=haha
baseurl=http://192.168.157.131/yum/centos/$releasever/$basearch/
enabled=1
gpgcheck=0
- 再創(chuàng)建文件 build spec 文件,放到 /root/rpmbuild/SOURCES 目錄下,是為了創(chuàng)建 rpm 包用的,haha.spec
Summary: haha
Name: haha
Version: 0.1
Release: 1
Source0: haha
Group: Applications/Internet
License: GPLv2+
URL: http://192.168.157.131/yum/
#BuildRoot: %{_tmppath}/%{name}-%{version}-root
BuildArch: noarch
%description
The haha yum repo
#%prep
#%setup -q
%install
mkdir -p $RPM_BUILD_ROOT/etc/yum.repos.d
install -m 0644 -p %{SOURCE0} $RPM_BUILD_ROOT/etc/yum.repos.d
%clean
rm -rf ${RPM_BUILD_ROOT}
%files
/etc/yum.repos.d/haha.repo
- 使用 rpmbuild -ba haha.spec,做出一個 rpm 包,位置在 /root/rpmbuild/RPMS/noarch 下面
- 制作一次 rpm 后,就可以一直使用了,rpm -ivh xxx.rpm 就可以了
參考了
1. 自建yum源與制作RPM安裝包yum源
2. yum只下載rpm包不自動安裝方法
3. Installing Chef Server 0.10 in RHEL 6
posted on 2012-11-07 21:39
哈哈的日子 閱讀(318)
評論(0) 編輯 收藏