zabbix_agentd rpm包制作

本文介绍了FPM工具的用途,支持的源类型和目标类型包,以及如何在CentOS上安装FPM。接着详细展示了如何编译和配置Zabbix Agent,包括创建安装后和卸载后的执行脚本。最后,利用FPM打包Zabbix Agent为RPM包,并提供了安装和卸载的命令。FPM参数的使用也在文中提及。
摘要由CSDN通过智能技术生成

1.打包工具FPM简介

FPM功能简单说就是将一种类型的包转换为另一种类型

1.1 支持的源类型包

  • dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包

  • rpm 对rpm进行转换

  • gem 对rubygem包进行转换

  • python 将python模型打包成相应的类型

1.2 支持的目标类型包

  • rpm 转换为rpm包

  • deb 转换为deb包

  • solaris 转换为solaris包

  • puppet 转换为puppet模块

2. FPM工具安装

安装ruby(ruby版本必须要在1.9.3以上,centos自带的是1.8的版本,需要自己编译安装)

wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0.tar.gz
tar zxvf ruby-2.7.0.tar.gz && cd ruby-2.7.0
./configure
make
make install
cat /etc/profile.d/ruby.sh
export PATH=/usr/local/bin/ruby:$PATH
source /etc/profile
# 添加ruby-china源
gem sources -a http://gems.ruby-china.com/
# 移除原生的Ruby仓库
gem sources --remove https://rubygems.org/
# 查看ruby源
gem source list
# 安装fpm
gem install fpm

3. zabbix agent编译安装及配置

请查看这里

4. 创建安装后脚本和卸载后脚本

(1) 创建安装后执行脚本,在文件安装到本地后会做一些初始化操作

cat /search/src/install_after.sh 
#!/bin/bash
#创建对应的用户和组以及日志目录,并给安装目录对应的权限
PREFIX="/usr/local/zabbix_agent"
zabbix_agentd="/etc/init.d/zabbix_agentd"
grep -q zabbix /etc/passwd
if [ $? -ne 0 ];then
    /usr/sbin/groupadd zabbix
    /usr/sbin/useradd -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
fi
mkdir -p "$PREFIX/logs"
chown -R zabbix.zabbix "$PREFIX"
\cp $PREFIX/bin/zabbix_agentd "$zabbix_agentd"
chmod +x "$zabbix_agentd"
exit 0

(2)创建卸载后清理脚本,会清理安装目录和前面安装脚本添加的一些设置

cat /search/src/remove_after.sh 
#!/bin/bash
#For rsync way of unloading
PREFIX="/usr/local/zabbix_agent"
pkill -9 zabbix_agentd
grep -q zabbix /etc/passwd
if [ $? -eq 0 ]
then
    userdel zabbix
fi
chkconfig --list|grep -q zabbix_agentd
if [ $? -eq 0 ]
then
    chkconfig --del zabbix_agentd
    chkconfig --level 35 zabbix_agentd off
fi
[ -f /etc/init.d/zabbix_agentd ] && rm -f /etc/init.d/zabbix_agentd
[ -d $PREFIX ] && mv "$PREFIX" /tmp/zabbix_$RANDOM
[ -d "/search/zabbix" ] && mv /search/zabbix /tmp/zabbix_$RANDOM
exit 0

5. 打RPM包

# 此处制作的是 redhat7 版本下的 zabbix_agentd 包,其他版本的系统请参考此方法制作
fpm -f -s dir -t rpm -n zabbix-agent-redhat7 --epoch 0 -v 4.4.6  \
-p /search/zabbix_rpm_package/ --verbose \
--post-install /search/src/install_after.sh \
--post-uninstall /search/src/remove_after.sh \
--no-rpm-sign /usr/local/zabbix_agent

FPM常用参数

参数说明
-s指定源类型
-t指定目标类型,即想要制作成什么包
-n指定包的名字
-v指定包的版本号
-C指定打包的相对路径
–no-rpm-sign指定安装目录
-d指定依赖于那些包
-f第二次打包时目录下如果有同名安装包存在,则覆盖它
-p输出的安装包的目录,不想放在当前目录下就需要指定
–post-install软件包安装完成之后所要运行的脚本;同–offer-install
–pre-install软件包安装完成之前所要运行的脚本;同–before-install
–post-uninstall软件包卸载完成之后所要运行的脚本;同–offer-remove
–pre-uninstall软件包卸载完成之前所要运行的脚本;同—before-remove
–description软件包描述

注意:–no-rpm-sign才是安装目录

查看rpm包内容

rpm2cpio zabbix-agent-redhat6-3.2.6-1.x86_64.rpm |cpio -div

6. 安装卸载

# 安装
rpm -ivh zabbix-agent-redhat7-4.4.6-1.x86_64.rpm
# 卸载
rpm -qa|grep zabbix
rpm -e zabbix-agent-redhat7-4.4.6-1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值