fpm打包

在部署安裝open-falcon組件時(shí),利用ansible playbook進(jìn)行批量安裝部署,通過將falcon相關(guān)的文件拷貝到目標(biāo)機(jī)上,然后進(jìn)行配置、啟動(dòng)。然而這種拷貝的方式一點(diǎn)都不優(yōu)雅,并且也存在版本不一致的隱患。
??通過rpm打包生成相應(yīng)open-falcon組件的rpm包,并放入到公司自有的yum源中;其他機(jī)器就可以通過yum install/update *.rpm進(jìn)行直接安裝,整個(gè)過程so elegant. 今天我們就介紹下fpm這個(gè)打包工具。

一、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環(huán)境下會(huì)發(fā)生異常:
<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

二、打包過程實(shí)例

我們就以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按照安裝后的目錄設(shè)定打包目錄,agent項(xiàng)目主要有兩個(gè)部分:

  1. /etc/init.d/open-falcon-agent: 控制腳本
  2. /home/falcon/agent/: 具體執(zhí)行目錄

~/rpms/agent創(chuàng)建etc/init.d/和home/falcon/agent/目錄,將對(duì)應(yīng)的腳本和執(zhí)行文件拷貝到相應(yīng)目錄,執(zhí)行上述命令即可。
??fpm相關(guān)參數(shù)可在網(wǎng)上搜一大堆,就不累贅了,總之用了fpm,媽媽再也不擔(dān)心我打包困難了。將打包完成后的rpm包push到公司的本地yum源倉(cāng)庫(kù),后續(xù)的安裝和升級(jí)軟件就變得如此的簡(jiǎn)單了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容