FPM之定制redis-cluster包

一、简介

FPM是jordansissel使用ruby语言开发的一款打包软件包的工具,fpm相比于rpmbuild,使用户构建rpm等软件包变得更加简单便捷。

支持的源类型:

gem (even autodownloaded for you)
python modules (autodownload for you)
pear (also downloads for you)
directories
tar(.gz) archives
rpm
deb
node packages (npm)
pacman (ArchLinux) packages

支持的目标类型

deb
rpm
solaris
freebsd
tar
directories
Mac OS X .pkg files (osxpkg)
pacman (ArchLinux) packages

二、安装fpm

centos7:

2.1、安装ruby

yum install ruby-devel gcc make rpm-build rubygems -y

2.2、安装fpm

gem install --no-ri --no-rdoc fpm

2.3、查看fpm版本

fpm --version
目前最新版本为2019年1月出的1.11.0版

三、部署redis_cluster节点

部署详见:redis-cluster部署

3.1、创建打包目录

mkdir /home/redis/redis_cluster

3.2、打包目录中包含的文件

redis-cli   redis-server  
redis-dmn.sh:redis守护脚本
redis_node_build.sh:创建redis节点(集群模式)脚本
script目录:放置开机启动service文件以及post和pre安装前后执行的脚本
start.sh:启动redis节点脚本

#!/bin/bash
workdir="/home/ceiec/redis_cluster"
killall redis-dmn.sh redis-server 
/bin/bash $workdir/redis_node_build.sh && /bin/bash $workdir/redis-dmn.sh

stop.sh:停止redis节点脚本
#!/bin/bash
killall redis-dmn.sh redis-server 

script目录下

[root@node1 script]# cat post-install.sh 
#!/bin/bash
workdir="/home/ceiec/redis_cluster/"
#systemd manager
cp $workdir/script/redis.service /usr/lib/systemd/system/

[root@node1 script]# cat post-uninstall.sh 
#!/bin/bash

redis_workdir="/home/ceiec/redis_cluster"
rm -rf ${redis_workdir}

[root@node1 script]# cat pre-uninstall.sh 
#!/bin/bash
systemctl stop redis.service
rm -rf /usr/lib/systemd/system/redis.service 

[root@node1 script]# cat redis.service 
[Unit]
Description=redis-cluster services
After=network.target
[Service]
User=root
ExecStart=/bin/bash /home/ceiec/redis_cluster/start.sh
ExecStop=/bin/bash /home/ceiec/redis_cluster/stop.sh
[Install]
WantedBy=multi-user.target

三、通过fpm打包

3.1、查看帮助

fpm --help
使用格式:fpm [OPTIONS] [ARGS] ...
ARGS:源包的类型,对于dir(目录)来说,包含指定目录中所有的目录和文件
OPTIONS:参数
-s, --input-type INPUT_TYPE:指定源包类型
-t, --output-type OUTPUT_TYPE:指定目标包类型
-p, --package OUTPUT:输出目标包的路径
-f, --force :强制输出目标包,覆盖输出路径下的同名包,默认关闭
-n, --name NAME:指定目标包名
--log LEVEL:指定记录日志级别error, warn, info, debug四级
--verbose:输出详细信息
-d, --depends DEPENDENCY:指定依赖包
--post-install FILE 与--after-install:软件包安装完成之后所要运行的脚本
--pre-install FILE 与 --before-install:软件包安装完成之前所要运行的脚本
--pre-uninstall FILE 与--before-remove:软件包卸载完成之前所要运行的脚本
--post-uninstall FILE 与--after-remove:软件包卸载完成之后所要运行的脚本
还有更多根据目标包类型可使用的参数,详见 fpm --help

3.2、打包

[root@node1 ~]# fpm -s dir -t rpm -n redis -v 4.0.14 --post-install /home/ceiec/redis_cluster/script/post-install.sh --post-uninstall /home/ceiec/redis_cluster/script/post-uninstall.sh --pre-uninstall /home/ceiec/redis_cluster/script/pre-uninstall.sh -f /home/ceiec/redis_cluster/
Created package {:path=>"redis-4.0.14-1.x86_64.rpm"}

3.3、验证

[root@node2 ~]# rpm -ivh redis-4.0.14-1.x86_64.rpm 
[root@node2 ~]# systemctl start redis
[root@node2 ~]# systemctl status redis
● redis.service - redis-cluster services
   Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-05-09 05:13:50 PDT; 4s ago

参考文章:
FPM GitHub:https://github.com/jordansissel/fpm
FPM 官方文档:https://fpm.readthedocs.io/en/latest/intro.html
fpm --help

转载于:https://blog.51cto.com/jiayimeng/2391950

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值