自动化部署必备技能,定制化RPM包

  

这里也不介绍rpmbuild这个打包工具了,想了解的朋友自行谷歌百度。但我不建议大家花太多的时间去学习这个命令,比较晦涩,而且我会在下面介绍更简单的命令。

FPM打包工具

FPM的作者是jordansissel 
FPM的github: https://github.com/jordansissel/fpm 
FPM功能简单说就是将一种类型的包转换成另一种类型。

安装FPM依赖:

yum安装- y, openssl *

yum安装gcc - y *

yum安装- y rpm-build

宝石来源-a  http://mirrors.aliyun.com/rubygems/ ,备用源

1。支持的源类型包

 dir ,,,,,,,,将目录打包成所需要的类型,可以用于源码编译安装的软件包
  rpm ,,,,,,,,对rpm进行转换
  gem ,,,,,,,,对rubygem包进行转换
  python ,,,,,将python模块打包成相应的类型

2。支持的目标类型包

 rpm ,,,,,,,,转换为rpm包
  deb ,,,,,,,,转换为deb包
  solaris ,,,,转换为solaris包
  puppet ,,,,,转换为傀儡模块

3。FPM安装

<>以前FPM是ruby写的,因此系统环境需要红宝石,且ruby版本号大于于1.8.5。   #,安装ruby模块yum  -y  install  ruby  rubygems  ruby-devel   #,查看当前使用的rubygems仓库gem  sources 列表   #,添加淘宝的Rubygems仓库,外国的源慢,移除原生的Ruby仓库   gem  sources ——add  https://ruby.taobao.org/ ——remove    #,安装fpm,宝石从rubygem仓库安装软件类似百胜从百胜仓库安装软件。   首先安装低版本的json,高版本的json需要ruby2.0以上,然后安装低版本的fpm,够用。   gem  install  json  -v  1.8.3gem  install  fpm  -v  1.3.3   #,上面的2步安装仅适合CentOS6系统,CentOS7系统一步搞的定,即gem  install  fpm

4。FPM参数

详细使用见FPM -

常用参数

 -s ,,,,,,,,,指定源类型
  -t ,,,,,,,,,指定目标类型,即想要制作为什么包
  -n ,,,,,,,,,指定包的名字
  -v ,,,,,,,,,指定包的版本号
  -C ,,,,,,,,,指定打包的相对路径,,Change  directory 用here  before  searching  forfiles
  -d ,,,,,,,,,指定依赖于哪些包
  -f ,,,,,,,,,第二次打包时目录下如果有同名安装包存在,则覆盖它
  -p ,,,,,,,,,输出的安装包的目录,不想放在当前目录下就需要指定
  ——post-install ,,,,,软件包安装完成之后所要运行的脚本;同——在安装后
  ——pre-install ,,,,,,软件包安装完成之前所要运行的脚本;同——安装前
  ——post-uninstall ,,,软件包卸载完成之后所要运行的脚本;同——after-remove
  ——pre-uninstall ,,,,软件包卸载完成之前所要运行的脚本;同——before-remove 

使用实例——实战定制nginx的RPM包

1。安装nginx

<>以前yum  -y  install  pcre-devel  openssl-devel   useradd  nginx  -M  -s /sbin/nologin   tar  xf  nginx-1.6.2.tar.gz   cd  nginx-1.6.2./configure    ——prefix=/应用程序/nginx-1.6.2 ——用户=nginx ——组=nginx ——with-http_ssl_module ——with-http_stub_status_module   make ,, make 安装   ln  -s /应用程序/nginx-1.6.2/,/应用程序/nginx

2。以前编写脚本

<> [root@xcn  ~] #, cd /服务器/脚本/(root@xcn 脚本)#,vim  nginx_rpm.sh , #,这是安装完rpm包要执行的脚本   # !/bin/bash   useradd  nginx  -M  -s /sbin/nologin   ln  -s /应用程序/nginx-1.6.2/,/应用程序/nginx

3。以前打包

<> [root@xcn  ~] #, fpm  -s  dir  -t  rpm  -n  nginx  -v  1.6.2  -d “pcre-devel, openssl-devel”,   ——post-install /服务器/脚本/nginx_rpm.sh  -f /应用程序/nginx-1.6.2/,,   no  value  for  epoch  is ,, defaulting 用nil {:水平=祝辞:警告}   no  value  for  epoch  is ,, defaulting 用nil {:水平=祝辞:警告}Created    package {:路径=祝辞;“nginx 1.6.2 - 1. x86_64.rpm”}   (root@xcn  ~) #, ll  -h  nginx 1.6.2 - 1. x86_64.rpm  -rw-r——r, 1, root  root  6.7 m  Nov , 1, 10:02  nginx - 1.6.2 - 1. - x86_64。rpm

4。安装rpm包

安装rpm包的三种方法:

<李>

rpm命令安装

 [root@LB-nginx-01  ~] #, rpm  -ivh  nginx x86_64.rpm——1.6.2 - 1.
  错误:,Failed 依赖关系:,,,,,,,
  pcre-devel  is  needed  by  nginx 1.6.2 - 1. x86_64 ,,,,,
  ,openssl-devel  is  needed  by  nginx-1.6.2-1。x86_64但会报如上依赖错误,需要先百胜安装依赖才能安装rpm包。

自动化部署必备技能,定制化RPM包