duanjigang 发表于 2013-10-16 06:55

《linux软件管理平台设计与实现》-问题大讨论与赠书活动(获奖名单已公布-2014-3-13)

获奖名单已公布,详情请看:http://bbs.chinaunix.net/thread-4131412-1-1.html

rpm 是 linux 系列(特别是 redhat 系统上)最常见的软件包格式之一,而yum又是管理这种软件包的主要利器。在互联网行业的运维工作中,几(十)万台服务器的软件包自动生成,发布,安装和升级工作是非常重要的工作,在日常的开发和运维工作中。您一般会遇到哪些问题?诸如:
(1): 源代码怎样规范化管理?
(2): 怎样自动通过源代码生成RPM包?
(3): RPM包是怎样发布到yum仓库中的?
(4): 新发布的RPM包怎样快速生效能够安装到数万台服务器上去的?
(5): RPM包/文件冲突是什么情况,又是怎样解决的?
(6): rpm/yum管理时都会遇到哪些问题?
(7): yum仓库中的成千上万个RPM包如何快速建立索引?
(8): 怎样保证yum服务的高可用?
(9): 怎样构建一套稳定高效的软件管理平台?
(10):RPM之外的软件包怎样管理?

在此我们先只列举这10个问题,感兴趣的朋友可以跟帖补充问题,然后针对已经列出的问题和其它朋友提出的问题进行回答?分享您在软件管理工作中遇到的问题和宝贵运维经验。

本书的由来:
在2012年的系统架构师大会上,笔者就软件管理平台的设计和规划发表了一篇演讲,PPT下载地址为:
《2012架构师大会-《Linux平台软件管理系统设计与规划》.pptx下载》
http://bbs.chinaunix.net/thread-3771155-1-3.html
然后,针对PPT中提到的议题和问题,我们在架构设计版发表了三篇文章分别进行讨论:
(1)《Linux平台软件管理系统设计与规划-基础篇(1)-RPM文件认识与格式剖析 》
http://bbs.chinaunix.net/thread-3985762-1-1.html
(2)《Linux平台软件管理系统设计与规划-进阶篇(2)-rpm生成:rpmbuild 和 spec文件剖析》
http://bbs.chinaunix.net/thread-4059136-1-2.html
(3)《Linux平台软件管理系统设计与规划-中级篇(3)-深入理解和使用yum来管理RPM包》
http://bbs.chinaunix.net/thread-4061323-1-1.html

经过这3篇文章的交流,我们发现对软件管理平台设计感兴趣的朋友还是很多的,而且这个话题也是比较新颖的,于是,笔者在勘误,改正这3篇文章的基础上,增加了<yum插件机制>这一话题。然后又就linux软件管理工作中的现状,问题。Linux软件管理平台该如何设计和实现这些高级,含金量更高的话题撰写了几篇文章,经过七个月左右时间的修改与完善,撰写成一本书籍,名为 《Linux软件管理平台设计与实现》,并通过机械工业出版社来印刷出版,现在已经在当当,chinapub,亚马逊等主流网站开始销售。

图书信息:
http://images.china-pub.com/ebook3765001-3770000/3768532/zcover.jpg
作者: 段继刚   
出版社:机械工业出版社
ISBN:9787111437925
上架时间:2013-9-13
出版日期:2013 年9月
开本:16开
页码:214
版次:1-1
http://product.china-pub.com/3768532

本书样章:
http://wenku.it168.com/d_001273122.shtml

本期话题:
1 谈谈您在linux软件管理运维/开发工作中遇到的问题和解决方法?
2对楼主提出的问题(1-10)发表您的高见

本期嘉宾:
ChinaUnix Linux系统管理版版主:jerryjzm, chenyx 和platinum
ChinaUnix Python版版主:smallfish_xy
ChinaUnix 架构设计版版主以及《linux软件管理平台设计与实现》图书作者:duanjigang

活动时间:2013年10月16日-2013年12月30日

本期奖品:
活动结束后,我们会评选出若干位积极参与话题讨论的网友奖励《linux软件管理平台设计与实现》图书1本,对其他积极参与讨论的网友(回帖有参考价值)我们将奖励积分20分。

活动要求:
1、 要言之有物,不能低于20个字
2、 和linux软件管理/运维/开发相关的话题均可讨论,其他问题可能不做重点

另外,我们关于这些话题已经开通了
mailist:
http://www.freelists.org/list/lsmd
lsmd@freelists.org
也欢迎加入邮件组讨论。

wenzk 发表于 2013-10-16 08:30

本帖最后由 wenzk 于 2013-10-16 16:32 编辑

对我所了解的几个方面给个建议,欢迎拍砖。

(2): 怎样自动通过源代码生成RPM包?
将命令写入脚本内,定期执行。
脚本将spec文件中的版本号提取出来,作为打包tar.gz文件的后缀,编译出来的rpm文件一般也包含这个版本号,所以rpm文件名也就可以提取出来了。
将包含spec文件的源代码打包成 NAME-VERSION.tar.gz,然后运行rpmbuild -ba NAME-VERSION.tar.gz

(3): RPM包是怎样发布到yum仓库中的?
一般rpm文件都带版本号的,所以重名的几率很低,不过还是可以通过脚本检查目标目录是否存在同名的文件。
将新生成的rpm文件复制到yum仓库的rpm目录中,然后在相应目录中运行createrepo .命令即可。
可通过脚本自动执行。

(4): 新发布的RPM包怎样快速生效能够安装到数万台服务器上去的?
通过dsh来搞定,将上万台机器的地址放到/etc/dsh/machines.list中,通过dsh执行:
dsh -a -c -- yum -y update


(8): 怎样保证yum服务的高可用?
HA + LVS 前端至少2台机器做HA + LVS,后端多放置几台机器进行服务。后端机器可以通过共享存储或通过rsync同步yum仓库。

Godbach 发表于 2013-10-16 09:32

回复 1# duanjigang

兰兰倾力打造 RPM 管理秘籍。支持。

   

lzhlve 发表于 2013-10-16 09:47

纯支持顶,不做这方面工作,对这方面学习不多,发表不了什么见解。买一本学习下:mrgreen:

carllai 发表于 2013-10-16 09:59

只用过最基本的rpm, yum功能,搭建过yum源,未做过rpm包的发布,进来学习。

badb0y 发表于 2013-10-16 10:00

本帖最后由 badb0y 于 2013-10-16 11:01 编辑

(1): 源代码怎样规范化管理?
一般会选稳定版的上一个版本

(2): 怎样自动通过源代码生成RPM包?
原来写spec,现在的原码都用fpm一直生成
fpm使用:http://blog.chinaunix.net/uid-405749-id-3475251.html

(3): RPM包是怎样发布到yum仓库中的?
将包复制到自建YUM服务器,createrepo .生成
自建yum服务器:http://blog.chinaunix.net/uid-405749-id-3948375.html

(4): 新发布的RPM包怎样快速生效能够安装到数万台服务器上去的?
用自动化管理工具,现在线上用puppet现实

(5): RPM包/文件冲突是什么情况,又是怎样解决的?
安装到不同目录,生成rpm时候指定目录

(8): 怎样保证yum服务的高可用?
可以建yum服务器的mirror镜像

(10):RPM之外的软件包怎样管理?
有少量的用源码安装,用puppet实现自动化

seesea2517 发表于 2013-10-16 10:02

运维过程中安装删除软件最头疼的应该算是依赖关系了,yum解决了这一难题,对于yum在安装和删除过程中如何处理依赖关系这样的问题不知道会不会有一些提及。

duanjigang 发表于 2013-10-16 10:19

回复 2# wenzk
呵呵,基本的方法是对了,老兄能否就每一个问题说的更详细些。
自动化打包怎么做,发布时包重名检测,文件冲突怎么做?
更新索引效率低怎么办?
:mrgreen: 继续补充。


   

duanjigang 发表于 2013-10-16 10:20

回复 3# Godbach
赵总多发表意见,贵公司的状况也可以介绍下


   

crazyhadoop 发表于 2013-10-16 11:03

书不错,看了本书,对软件管理平台构建会有很高的认识
页: [1] 2 3 4 5 6
查看完整版本: 《linux软件管理平台设计与实现》-问题大讨论与赠书活动(获奖名单已公布-2014-3-13)