rpm自动化打包工具

栏目: 服务器 · 发布时间: 6年前

内容简介:运维开发团队为了能够让开发人员方便快捷的安装开发依赖包,以提高开发人员的开发效率。特意为开发人员提供了一款可以自助制作rpm包的全自动打包工具。利用该自助打包工具,开发人员可以在最短的时间内随心所欲的制作出满足特定需求rpm包。安装软件的方式大致可以分为三种。编译安装软件、yum安装软件和通过编译源码定制rpm包。编译安装软件,可以定制化安装目录、按需开启功能等,但是需要查找并实验出适合的编译参数,耗时较长。yum安装软件,实现全自动安装,不需要为依赖问题发愁,但是自主性太差,软件的功能、存放位置不易变更

运维开发团队为了能够让开发人员方便快捷的安装开发依赖包,以提高开发人员的开发效率。特意为开发人员提供了一款可以自助制作rpm包的全自动打包工具。利用该自助打包工具,开发人员可以在最短的时间内随心所欲的制作出满足特定需求rpm包。

背景与需求

安装软件的方式大致可以分为三种。编译安装软件、yum安装软件和通过编译源码定制rpm包。编译安装软件,可以定制化安装目录、按需开启功能等,但是需要查找并实验出适合的编译参数,耗时较长。yum安装软件,实现全自动安装,不需要为依赖问题发愁,但是自主性太差,软件的功能、存放位置不易变更。编译源码,根据自己的需求定制rpm包,然后搭建内网yum仓库,利用yum安装,结合了前两种方法的优点,避免了各自的缺点,是中大型互联网企业自动化运维的必要技能。因此提供一款简单、快捷的rpm自助打包 工具 成为运维开发组的的一个重要的okr。

RPM自助打包工具简介

rpm自助打包工具。是一种将用户提供的文件和执行脚本转化为rpm包的打包工具。提供了文件的分发和脚本的自动执行功能。是一种基于fpm工具而制作的一个网站系统。打包网址: http://autorpmbuild.aiops.qihoo.net/

工作原理

rpm自动化打包工具充分利用了S3存储和fpm工具的优势。首先将制作的文件夹通过S3上传至S3存储,在服务端利用S3下载到本地。其次通过http协议将rpm包的基本信息上传到服务端,服务端将信息进行分析和组合,为fpm工具提供参数信息。最后通过fpm工具形成rpm包。fpm工具详解可以参考: https://github.com/jordansissel/fpm rpm自动化打包工具

核心功能特性

源文件上传工具-wshell

用户需在配置好的样板机上安装使用,可以方便灵活的打包文件并上传备份至hulk对象存储,减轻用户维护成本。

Step01 - 工具安装

yum install addops-auto-wshell

Step02 - 按照源文件结构规范制作src文件夹

rpm自动化打包工具

src文件夹规范详见wiki: http://wiki.add.corp.qihoo.net/pages/viewpage.action?pageId=6500791

Step03 - 使用wshell制作src压缩包

wshell build name-version-release

例:wshell build pika30-3.0.2-1

Step04 - 使用wshell上传src压缩包

wshell put name-version-release

例:wshell put pika30-3.0.2-1.tar.gz

rpm自助打包平台

rpm自助打包平台提供了制作rpm包所需的基本信息。包括基本选项如版本号、打包人、rpm包基本信息描述和高级选项如安装前执行脚本、安装后执行脚本、卸载前执行脚本和卸载后执行脚本。

rpm自动化打包工具

Step01 - 填写rpm metadata

rpm自动化打包工具

按需填写完信息后点击“提交”,开始构建rpm

Step02 - rpm构建进度查询

当rpm包还在制作中时,显示

rpm building..

当rpm包制作完成时,显示

addops-auto-xxx-version-release.x86_64.rpm has been packaged,please test!!!。

Step03 - rpm包测试

当rpm包制作完成时,页面显示rpm测试包的安装地址:

rpm i http://k2198v.add.bjyt.qihoo.net:80/+包名。  

Step04 - 发布上线

将rpm包发布到yum源中

Q&A

Q: 通过这个平台可以同时做 CentOS 6 和 CentOS 7 的 rpm 包吗?

A: 可以的,目前我们支持 el6 和 el7 两个操作系统版本的自助打包需求,平台左上角显示当前制作 rpm 包的适用操作系统版本。点击该区域即可进行切换。

Q: 为什么要添加 addops-auto- 这个前缀?

A: 由于目前yum源中已经大量存在以 addops 为前缀的rpm包,出于避免用户自助制作的 rpm 包与 addops yum 源中的 rpm 包冲突,我们会在用户自定义制作的 rpm 包增加 addops-auto- 前缀。

Q: 为什么利用 yum 安装时检测不到最新打的包?

A: 由于 yum 工具安装时会有缓存存在的现象,为了不影响新包的安装,可以在安装新包之前清除 yum 缓存,方法为 yum clean all。

Q: 安装过程中与以 addops- 为前缀的同名包冲突怎么办?

A: 这是由于当前主机中已经安装了相同包名的 rpm 包,需要将以 addops- 为前缀的包删除之后再重新安装以 addops-auto- 为前缀的 rpm 包。高级用户还可以在安装前的执行脚本中加入卸载以 addops- 为前缀的包的 shell 命令完成上述操作。

总结与展望

rpm自动化工具在很大程度上改变了之前延续的打包方法,使得打包更小白化,每一位没有接触过打包的 程序员 都可以在很短的时间内实现rpm包的定制。目前该系统支持多个用户的源码包备份、并发打包和进度查询,但是源码包的制作还不是很友好,随着用户量的增大,未来将优化源码包的制作工具,提高打包效率。

参考文档

http://wiki.add.corp.qihoo.net/pages/viewpage.action?pageId=6499917

http://easydoc.qihoo.net/doc?project=1d1b49835cbb989968925b2553243a0a&config=title_menu_toc

http://wiki.add.corp.qihoo.net/pages/viewpage.action?pageId=6500791

https://github.com/jordansissel/fpm


以上所述就是小编给大家介绍的《rpm自动化打包工具》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Servlet和JSP学习指南

Servlet和JSP学习指南

Budi Kurniawan / 崔毅、俞哲皆、俞黎敏 / 机械工业出版社华章公司 / 2013-4-14 / 59.00元

本书是系统学习Servlet和JSP的必读之作。由全球知名的Java技术专家(《How Tomcat Works》作者)亲自执笔,不仅全面解读Servlet 和JSP 的最新技术,重点阐述Java Web开发的重要编程概念和设计模型,而且包含大量可操作性极强的案例。 本书共18章:第1章介绍Servlet API和几个简单的Servlet;第2章讨论Session追踪,以及保持状态的4种技术......一起来看看 《Servlet和JSP学习指南》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具