根据业务的需求制作统一规则的RPM包,已经成为中大型互联网企业运维自动化的必要技能。目前流行的打包工具rpmbuild和fpm。但是rpmbuild中的spec规则太过复杂,不如fpm工具简单,而且fpm能更好的与shell脚本结合在一起,所以推荐大家用fpm工具。下面是我的具体实例:
环境:centos 7.4
部署流程:
#fpm需要ruby环境,所以需要下载
yum install ruby rubygems ruby-devel
#由于国内网络环境,删除默认的ruby源,添加阿里源
gem source --remove
gem source --add http://mirrors.aliyun.com/rubygems/
#将nginx的源码包进行解压,编译
mkdir fpm && cd fpm
wget http://nginx.org/download/nginx-1.11.12.tar.gz && tar zxf nginx-1.11.12.tar.gz && cd nginx-1.11.12
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module
make && make install
#创建nginx的配置文件(打完rpm运行的脚本)
mkdir -p /usr/local/nginx/conf/vhosts
mkdir scripts && cd scripts
vim after.sh
#开始打包生成rpm包
#将rpm包考到另外一台服务器上面,安装测试
注意:我个人习惯用这种安装方式,可以解决依赖。
#用 elinks命令行工具进行检验
#可以看到我们设置的页面,说明测试成功
RPM包打包成功
ps:打RPM包也是自动化的一种,从下期开始,将正式更新自动化部署工具ansible模块(目前从事的工作就是自动化方向:ansible+python或shell),希望能和大家共同学习,大家有建议可以留言给我。