红联Linux门户
Linux帮助

在操作系统UBUNTU14.4中构建CEPH deb包

发布时间:2017-08-24 16:23:21来源:blog.csdn.net/u010317005作者:oba没有马
注:操作系统为UBUNTU14.4,3.X的内核,安装的CEPH版本为0.94.5(hammer)
 
思路
根据github上下载的CEPH源码,然后打包成deb包。通过dpkg –i指令替换ceph-deployinstall安装ceph的包,其他直接用ceph-deploy部署集群。或者是将打包的deb包发布本地repo,替换掉ceph-deploy的网络repo,按照ceph-deploy正常的安装步骤即可。
 
github下载源码
git clone --recursive https://github.com/ceph/ceph.git  
cd ceph  
git checkout v0.94.5 -f  
Notes:
1.下载比较慢,需下载不少submodule,若中途因为网络问题,切换到ceph目录后,可通过以下指令继续下载。
2.必须Git下载,否则会缺少文件
3.据说早上七八点的时候下载特别快
git submodule update --init --recursive  
 
安装依赖包及配置
./install-deps.sh  
./autogen.sh  
./configure  
 
编译(可选)
该步骤可以省去,因为打包工具dpkg也会执行编译命令。因为编译工具采用make,会检测那些文件已编译过,提前编译可以节省打包工具的打包时间。
make –j 4  
其中-j是打开多线程编译,4表示为4线程,一般为核心数的两倍,查看核心数的指令
cat /proc/cpuinfo | grep cores  
如果数字为核心数的两倍容易报错,数字指定为核心数值也可。
 
构建deb包
apt-get install debhelper  
dpkg-buildpackage –j4  
编译完成后如下
在操作系统UBUNTU14.4中构建CEPH deb包
 
制作deb包本地源
下载依赖包
apt-get install dpkg-dev  
 
创建目录结构
mkdir /home/ceph-hammer  
cd /home/ceph-hammer  
mkdir pools  
mkdir -p dists/trusty/main/binary-i386  
mkdir -p dists/trusty/main/binary-amd64  
 
拷贝ceph软件包到pools
cp *.deb /home/ceph-hammer/pools  
 
生成override 文件
把pools目录下所有的deb包包名写入文件override中
ls -1 pools | sed 's/_.*$/ extra BOGUS/' | uniq > override  
 
生成Packages
把所有包的包名、版本号、依赖关系等信息写入文件Packages中
dpkg-scanpackages pools override > dists/trusty/main/binary-i386/Packages  
dpkg-scanpackages pools override > dists/trusty/main/binary-amd64/Packages  
 
允许ubuntu的packages未认证
echo "APT::Get::AllowUnauthenticated 1 ;" | sudo tee -a /etc/apt/apt.conf  
 
至此,ceph本地源制作完成。
 
方法一:dpkg直接安装
切换到deb包的路径,执行一下命令即可
(注:需先安装一些依赖包,使用脚本install_deps.sh即可自动安装)
dpkg –i *.deb  
注意!不要使用ceph-deploy install指令,否则会自动联网下载ceph安装包。
安装完成后,下载ceph-deploy,除了ceph-deploy install命令不用之外,其他照常配置集群即可。
 
方法二:替换repo安装
下载ceph-deploy
添加release key
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -  
添加ceph软件源(用来下载新版的ceph-deploy,否则为1.4的版本):
echo deb http://download.ceph.com/debian-hammer/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list  
更新源
apt-get update  
下载ceph-deploy
apt-get install ceph-deploy  
 
将源修改为本地源
修改repo库
vi /usr/lib/python2.7/dist-packages/ceph_deploy/hosts/debian/install.py  
找到以下代码:
if version_kind == 'stable':  
url = 'http://ceph.com/debian-{version}/'.format(  
version=version,  
)  
elif version_kind == 'testing':  
url = 'http://ceph.com/debian-testing/'
修改成
if version_kind == 'stable':  
# url = 'http://ceph.com/debian-{version}/'.format(  
url = 'file:///home/ceph-{version}/'.format(  
version=version,  
)  
elif version_kind == 'testing':  
url = 'http://ceph.com/debian-testing/'  
强制指定版本
vi /usr/lib/python2.7/dist-packages/ceph_deploy/install.py  
找到以下代码
version_str = args.version_kind  
if version:  
version_str += ' version {version}'.format(version=version)  
LOG.debug(  
修改为
version_str = args.version_kind  
version = 'hammer' ## add by yxj  
if version:  
version_str += ' version {version}'.format(version=version)  
LOG.debug(  
取消MDS的安装(如果不需要的话),找到以下代码
vi /usr/lib/python2.7/dist-packages/ceph_deploy/gatherkeys.py  
并加注释
cap_dict = {  
'admin' : [  
'osd', 'allow *',  
'mds', 'allow *',  ##commet by yxj  
'mon', 'allow *'  
],
找到以下代码,加入一行代码
vi /usr/lib/python2.7/dist-packages/ceph_deploy/hosts/debian/install.py  
加入
packages = ['ceph','radosgw']  
if packages:  
distro.packager.install(  
packages,  
extra_install_flags=extra_install_flags  
)
后续按官网的ceph-deploy部署方式部署即可。
 
打包ceph-deploy
git clone https://github.com/ceph/ceph-deploy.git  
cd ceph-deploy  
git checkout v1.5.20 –f  
dpkg-buildpackage
 
本文永久更新地址:http://www.linuxdiyf.com/linux/32405.html