构建CEPH deb包

来源:互联网 发布:同步教育软件 编辑:程序博客网 时间:2024/06/05 21:02

注:操作系统为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.gitcd cephgit 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 debhelperdpkg-buildpackage –j4

编译完成后如下


制作deb包本地源

下载依赖包

apt-get install dpkg-dev

创建目录结构

mkdir /home/ceph-hammercd /home/ceph-hammermkdir poolsmkdir -p dists/trusty/main/binary-i386mkdir -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/Packagesdpkg-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.gitcd ceph-deploygit checkout v1.5.20 –fdpkg-buildpackage



原创粉丝点击