构建CEPH deb包

16 篇文章 4 订阅

注:操作系统为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

 

编译完成后如下

 

制作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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值