??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
使用fpm简单制作自定义rpm包

转载   a120518129   2017-06-13   浏览量:458


我的环境是centos7.2的

一、安装FPM工具

yum -y install ruby rubygems ruby-devel

gem sources list   查看gem包管理源仓库地址

gem sources -a //mirrors.aliyun.com/rubygems/  添加aliyun 仓库地址

gem sources --remove https://rubygems.org/  移出国外gem包管理源仓库地址

wKioL1lTKODzaUbpAAAPqEozrs0426.png

安装fpm
gem install fpm

安装如遇以下问题,请看以下内容

ERROR:  Error installing fpm:

ruby-xz requires Ruby version >= 1.9.3

解决方法:

1.更新ruby

2: 安装旧版本的fpm(建议采用)

gem install fpm -v 1.4.0  指定版本安装

二、源码包编译安装

./configure  --prefix=/opt/zabbix --enable-agent

make && make install

三、启动脚本修改及定制

创建定制目录

mkdir /opt/zabbix/{logs,pid}

复制启动脚本

cp /opt/zabbix-3.2.6/misc/init.d/fedora/core/zabbix_agentd /opt/zabbix/bin/

修改启动脚本路径

vim /opt/zabbix/bin/zabbix_agentd

BASEDIR=/opt/zabbix

修改配置文件

vim /opt/zabbix/etc/zabbix_agentd.conf

grep -v ^# /opt/zabbix/etc/zabbix_agentd.conf| grep -v ^$

PidFile=/opt/zabbix/pid/zabbix_agentd.pid

  LogFile=/opt/zabbix/logs/zabbix-agent.log

Server=127.0.0.1

 StartAgents=5

ServerActive=127.0.0.1

Hostname=Zabbix server

 HostMetadata=Linux

 RefreshActiveChecks=60

 BufferSend=10

 BufferSize=1000

 MaxLinesPerSecond=200

 Timeout=15

 UnsafeUserParameters=1

 Include=/opt/zabbix/etc/zabbix_agentd.conf.d/*.conf

四、创建安装前脚本及卸载前脚本

1、创建安装前脚本

cat /opt/zabbix/install

#!/usr/bin/bash

useradd zabbix  -s /sbin/nologin

chown -R zabbix:zabbix /opt/zabbix

\cp  /opt/zabbix/bin/zabbix-agent.service /usr/lib/systemd/system/zabbix-agent.service

chmod +x /opt/zabbix/sbin/zabbix_agentd

systemctl enable zabbix-agent

sed -i "s/^Hostname=Zabbix agent/Hostname=`hostname`/g"  /opt/zabbix-agent/etc/zabbix_agentd.conf

wKiom1lTjLaQfnkRAAA_WLCDNbw774.png

2、卸载前脚本

#!/usr/bin/bash

pkill -9 zabbix_agentd

userdel -r zabbix

groupdel zabbix 

systemctl disable zabbix-agent

rm -rf /usr/lib/systemd/system/zabbix-agent.service

rm -rf /opt/zabbix

wKioL1lTjNjhLIiYAAAsQPG4das861.png

3、把官方zabbix中的rpm包zabbix-agent.service提取出来,然后改成自己的需求即可。

rpm2cpio zabbix-agent-3.2.6-1.x86_64.rpm | cpio -div    ###解压rpm包命令方法。


cat zabbix-agent.service

[Unit]

Description=Zabbix Agent

After=syslog.target

After=network.target


[Service]

Environment="CONFFILE=/opt/zabbix/etc/zabbix_agentd.conf"

EnvironmentFile=-/etc/sysconfig/zabbix-agent

Type=forking

Restart=on-failure

PIDFile=/opt/zabbix/pid/zabbix_agentd.pid

KillMode=control-group

ExecStart=/opt/zabbix/sbin/zabbix_agentd -c $CONFFILE

ExecStop=/bin/kill -SIGTERM $MAINPID

RestartSec=10s


[Install]

WantedBy=multi-user.target

wKiom1lTjfWhjHokAABny91XvDY548.png

五、打成RPM包

命令:

fpm -f -s dir -t rpm -n zabbix-agent --epoch 0 -v 3.2.6 -C /  -p /tmp/  --verbose --category 'Applications/Internet' --description 'Zabbix Agent' --url '//www.zabbix.com/' --license 'BSD' -m 'zabbix'  --post-install /opt/zabbix/install --post-uninstall /opt/zabbix/remove  --no-rpm-sign /opt/zabbix

wKioL1lTjvHB5geBAAGvL8q2_fY007.png文件在/tmp目录下

六、测试安装及卸载,验证。

yum localinstall zabbix-agent-3.2.6-1.x86_64.rpm -y

yum remove zabbix-agent -y

wKioL1lTkD2iiHq1AAGipM3m2_A743.png

FPM常用参数:

-s:指定源类型

-t:指定目标类型,即想要制作为什么包

-n:指定包的名字

-v:指定包的版本号

-C:指定打包的相对路径

--no-rpm-sign 指定安装目录

假如-C / --no-rpm-sign /usr/local/zabbix 而打包机器的数据包路径是/usr/local/zabbix 那安装这个rpm包后,在本地的数据就是/usr/local/zabbix。

如果是-C /usr/local/zabbix --no-rpm-sign 那么必须吧数据包放到/usr/local/zabbix/usr/local/zabbix 下,否安装全部安装在/根目录下

-d:指定依赖于哪些包

-f:第二次包时目录下如果有同名安装包存在,则覆盖它

-p:输出的安装包的目录,不想放在当前目录下就需要指定

--post-install:软件包安装完成之后所要运行的脚本;同--offer-install

--pre-install:软件包安装完成之前所要运行的脚本;同--before-install

--post-uninstall:软件包卸载完成之后所要运行的脚本;同--offer-remove

--pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove

--description:软件包描述

详情:fpm -h


转载自://blog.51cto.com/silencezone/1935110

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



subline自定义快捷键
由于想改一下subline默认运行快捷键ctrl+b,尝试修改,方法如下:打开首选项-->快捷键设置KeyBindings-Default//这个表示系统默认的快捷键.KeyBindings-User//这个表示用户自定义的快捷键的地方.默认是空的.[{"keys":["alt+q"],"command":"build&q
sed简单用法
 -n∶取消默认的输出,使用安静(silent)模式。在一般sed的用法中,所有来自STDIN的资料一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来    -e∶进行多项编辑,即对输入行应用多条sed命令时使用.直接在指令列模式上进行sed的动作编辑 &nb
awk的使用---业务需求
awk是按照流来处理的,所以处理1-5G的文本数据相对还是可以的!求和awk-F:-vsum=0'{sum+=$3}END{printsum}'/etc/passwd或者 awk-F: '{sum+=$3}END{printsum}'/etc/passwd默认变量为0规定日志格式$17为domainname$19为request$21为响应状
使用fpm来制作rpm包
使用fpm来制作rpm包2017/2/22一、配置fpm环境1、安装ruby和fpm使用rvm来管理rubycurl -sSL https://rvm.io/mpapis.asc | gpg2 --import -curl -L https://get.rvm.io | bash&nb
Puppet使用ENC报'Could not load external node results for'
这个问题出现有一段时间了,最开始的时候从一天3-5次左右到最近的一天出现10多次的告警邮件...因为Puppet同步采取了主动触发和定时同步两种策略,几乎每次的报错都是在定时同步时出现...PuppetServer采用双主结构,Webui使用Foreman,为了确定这个报错是出现在那台服务器上,通过对源代码的log增加主机标记最终定位到了这个错误只是出现在一台服务器上...,出现的很偶然,但
ruby_expect??榈氖褂?.
通过ruby实现类expect功能的脚本..在ruby中有2两种实现方式:1.利用标准库中的Pty基于io流的方式实现(较为复杂,涉及到输入输出io流).2.通过rubygems利用扩展包实现.本次主要介绍这个。首先通过gem安装软件包:     在国内因为强大的GFW,导致rubygems安装第三方库很慢..  &nb
CocoaPods安装和使用教程
第一步 移除ruby的源地址gemsources--removehttps://rubygems.org/   //注释:等有反应之后再敲入以下命令第二步添加ruby的源地址   gemsources-a//ruby.taobao.org/   第三步查看ruby的源地址
使用checkinstall制作rpm包
前段时间写过一篇 采用redhat官方指定的方法(自己写spec文件)制作RPM包今天写的主要是基于网上的2个开源软件来实现RPM包制作的个人试了一下感觉跟方便所以记录下 怕以后能用到一个checkinstall这个软件  应该有人听过他是一个交互式过程来制作RPM包的 过程比较简单还有一个是 fpm这个大家应
puppet的facter使用几例
在puppet中有一个很重要的组件template,配合facter??榭梢允迪职葱枧渲玫墓δ?。facter可以看做是在client端用来收集信息的一个功能组件。其代码目录可以通过facter|grepdirrubysitedir=>/usr/lib/ruby/site_ruby/1.8 查看(rb文件),每一个变量对应一个rb文件,rb文件的结构也比较简单,自定义的话
为什么要使用符号作为hash的键
使用符号在比较时即节省时间又节省内存,因为符号仅仅存储一次 ruby的符号是一种不可改变的字符串,同一个符号在代码中多次引用时,是指向同一个对象,拥有相同的object id 而字符串是可变的,代码中的相同的内容有时却要分别存储,拥有不同的object id 用字符串作为hash的键,ruby要计算该字符串的hash值,并将其与hash中的其他键的