fpm打包

作者: modeyangg_cs | 来源:发表于2016-02-02 10:33 被阅读621次

    在部署安装open-falcon组件时,利用ansible playbook进行批量安装部署,通过将falcon相关的文件拷贝到目标机上,然后进行配置、启动。然而这种拷贝的方式一点都不优雅,并且也存在版本不一致的隐患。
      通过rpm打包生成相应open-falcon组件的rpm包,并放入到公司自有的yum源中;其他机器就可以通过yum install/update *.rpm进行直接安装,整个过程so elegant. 今天我们就介绍下fpm这个打包工具。

    一、centos安装

     yum -y install ruby rubygems ruby-devel
     gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
     gem install fpm
    

    在ruby 1.8.7环境下会发生异常:
    <code>/usr/lib/ruby/gems/1.8/gems/cabin-0.8.0/lib/cabin/mixins/logger.rb:12:in included': undefined methodoptions' for #<Cabin::Subscriber:0x2b712a9f6f98> (NoMethodError)</code>
    在fpm github issue中 New version of cabin conflicts with FPM有解决方案:

    1. gem uninstall cabin
    2. gem install cabin -v 0.7.2

    二、打包过程实例

    我们就以open-falcon agent为例,将其打包,命令行如下:

    fpm -f -s dir -t rpm -n falcon-agent -v 5.1.0 --epoch 0 --iteration 1.el6 -C ~/rpms/agent  --verbose --category 'Development/App' --description 'falcon agent' --url 'github.com' --license 'BSD'  --no-rpm-sign
    

    ~/rpms/agent目录下将falcon agent按照安装后的目录设定打包目录,agent项目主要有两个部分:

    1. /etc/init.d/open-falcon-agent: 控制脚本
    2. /home/falcon/agent/: 具体执行目录

    ~/rpms/agent创建etc/init.d/和home/falcon/agent/目录,将对应的脚本和执行文件拷贝到相应目录,执行上述命令即可。
      fpm相关参数可在网上搜一大堆,就不累赘了,总之用了fpm,妈妈再也不担心我打包困难了。将打包完成后的rpm包push到公司的本地yum源仓库,后续的安装和升级软件就变得如此的简单了。

    相关文章

      网友评论

        本文标题:fpm打包

        本文链接:https://www.haomeiwen.com/subject/semskttx.html