内容简介:运维开发团队为了能够让开发人员方便快捷的安装开发依赖包,以提高开发人员的开发效率。特意为开发人员提供了一款可以自助制作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
核心功能特性
源文件上传工具-wshell
用户需在配置好的样板机上安装使用,可以方便灵活的打包文件并上传备份至hulk对象存储,减轻用户维护成本。
Step01 - 工具安装
yum install addops-auto-wshell
Step02 - 按照源文件结构规范制作src文件夹
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包基本信息描述和高级选项如安装前执行脚本、安装后执行脚本、卸载前执行脚本和卸载后执行脚本。
Step01 - 填写rpm metadata
按需填写完信息后点击“提交”,开始构建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
以上所述就是小编给大家介绍的《rpm自动化打包工具》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Developer's Guide to Social Programming
Mark D. Hawker / Addison-Wesley Professional / 2010-8-25 / USD 39.99
In The Developer's Guide to Social Programming, Mark Hawker shows developers how to build applications that integrate with the major social networking sites. Unlike competitive books that focus on a s......一起来看看 《Developer's Guide to Social Programming》 这本书的介绍吧!