2010年9月第零期(测试刊)本期主题:运维自动化关键字:DevOps,开源运维工具,Kickstart,Cobbler,敏捷运维14/214/2本期内容索引Linux运维趋势第0期运维自动化【人物】运维专家李洋:漫谈基于开源服务的运维自动化实现.................3【八卦,趣闻&数字】.......................................................................................5【国际前沿】什么是DevOps?......................................................................6【运维漫画阁】正则表达式有什么用?.......................................................10【命令行&工具】面向Linux系统管理员的开源工具链...........................11【命令行&工具】自动化开源工具一览........................................................14【实战】Kickstart无人值守安装搭建RHCE实验室.................................16【实战】戏说Cobbler:Linux网络安装的革命........................................20【下期预告】.....................................................................................................21杂志策划:51CTO系统频道本期主编:lazycai本期专家:李洋技术顾问:抚琴煮酒、王文文特别顾问:杨文飞Logo制作:高鹏飞交流圈子:邮件群组:groups.google.com/group/linuxops-cn(订阅方式:发送Email到linuxops-cn+subscribe@googlegroups.com)投稿信箱:yangsai@51cto.com(注:本杂志并不单独接受投稿,所有投稿的接受对象为51CTO系统频道)Linux运维趋势2010年9月第0期第2页交流圈:【人物】运维专家李洋:漫谈基于开源服务的运维自动化实现【人物】运维专家李洋:漫谈基于开源服务的运维自动化实现人物专访|李洋采访&编辑:杨赛随着各种业务对IT的依赖性渐重以及云计算技术的普及,企业平均的IT基础架构规模正不断扩张。有些Web2.0企业可能会需要在两个星期内增加上千台服务器,因此对运维而言,通过手动来一个一个搭建的方法不仅麻烦、效率低下,而且非常不利于维护和扩展。即使是在传统的企业当中,日常的备份、服务器状态监控和日志,通过手动的方式来进行的效率也很低,是一种人力的浪费。因此,自动化早已是每个运维都必须掌握的看家本领。在不同的企业中,自动化的规模、需求与实现方式都各不相同,因此在技术细节层面,运维之间很难将别的企业的方法整个套用过来。然而在很多情况下,自动化的思路是有共通之处的。因此,51CTO系统频道最近邀请了中国移动通信研究院的项目经理李洋先生,就运维自动化实现,尤其是基于开源工具的运维自动化,谈了谈自己的经验和看法。李洋,博士毕业于中科院计算所。10多年来一直从事计算机网络信息安全研发工作,曾主持和参与多项国家重点项目以及信息安全系统和企业信息安全系统的研发工作。具有Linux系统应用、管理、安全及内核的研发经验,擅长网络安全技术、协议分析、Linux系统安全技术、Linux系统及网络管理、Linux内核开发等。51CTO:能否先大致谈谈您的运维经历?李洋:我的运维经历分3个阶段:(1)靠纯手工、重复地进行软件部署和运维;(2)通过编写脚本方便地进行软件部署和运维;(3)借助第三方工具高效、方便地进行软件部署和运维。这几个阶段是随着我知识、经验、教训不断积累而不断演进的。而且,第2个阶段和第3个阶段也可以说是齐头并进的。Linux下的第三方工具虽说已经不少了,但是Linux下的脚本编写对运维工作的促进是绝对不可以忽视的。所以我在实践中一直是两种方式都采用。51CTO:在Linux下有哪些运维工具是让您感觉特别好用、眼睛一亮的?李洋:其实Linux下的运维工具不算太多,我觉得比较好用的包括RedHat提供的KickstartInstallations自动安装解决方案,不过该方案相对比较繁琐;目前有的工程师认为Cobbler是让人眼前一亮的好工具,个人感觉也挺不错。另外,其实Linux下能够方便地通过编写shell脚本、使用CronTab等方法来进行运维,个人认为这也是非常不错的选择。51CTO:有人理解自动化就是运维为了减少重复枯燥的工作而建立的流程方法,而除此之外,自动化还能够带来减少人为错误、及时报警与故障恢复、提高业务可用性等好处。您对运维工作自动化是如何理解的?您认为自动化的技能/意识对于运维的重要程度如何?李洋:运维工作自动化确实包含上述2个方面,归纳总结来其实就是:把零碎的工作集中化,把复杂的工作简单有序化,把流程规范化,最大化地解放生产力,也就是解放运维人员。自动化的技能/意识对于运维工作至关重要。运维工作不是简单的使用工具,这里面还有很多技巧和意识。具体的技巧/意识包括:(1)如何驾驭这些琳琅满目的工具为己所用Linux运维趋势2010年9月第0期第3页交流圈:【人物】运维专家李洋:漫谈基于开源服务的运维自动化实现(2)如何根据不同的应用环境来选用不同的工具(3)如何根据应用来组合使用工具等等等等。一定要记住一点:工具是来帮助人进行运维的,这中间还需要人的干预和决策,工具不能代替完全的运维工作。51CTO:自动化针对的范围可以大致分为安装自动化、部署自动化、监控自动化等方面。除此之外,还有哪些方面是您比较关注的?(比如软件发布、更新、备份等)对于这几个方面的技术实现,您一般采用哪些工具?这些工具相比其他同类工具的优势在哪里?李洋:自动化其实还包括软件发布自动化、升级自动化、安全管控自动化、优化自动化等等。我个人比较关注管理和安全方面的技术实现,比如说HP和IBM出品的一些ITIL和ITSM产品等我都在使用,比如HPOpenview,IBMTivoli等等。这些工具都有Linux的版本,与其他同类工具相比的优势应该在于他们的商业应用成熟度,都是老品牌了。51CTO:针对一个小规模的网站,到百万量级、千万量级的网站,您在考虑工具的选择上会有怎样的不同?李洋:我在选择上对于百万量级、千万量级的网站尤其会考虑选择成熟的工具、性能高的工具、熟悉的工具。而对于小规模的网站,则会考虑选择一些开源的、免费的工具。这个原则就是以应用为导向,百万量级、千万量级的网站牵涉的面广、要求高,不成熟的工具往往很难说服我使用,所以主要是在成熟度方面。51CTO:很明显,自动化的实现不是单纯学习几个工具就能够做好的,甚至于规划不好的情况,自动化不仅没有节省人力,反而带来了更多的问题。您建议运维人员在考虑自动化流程的过程中应该遵循怎样的原则或思路?李洋:其实前面多多少少也谈到这个问题了。归纳一下,包括如下几点原则:(1)根据应用选择工具(2)对于关键应用,选择成熟度高的工具(3)不能过分依赖一种工具,需要进行对比和分析(4)对工具的特性做到精通(5)是人驾驭工具,人要监督工具,而不是工具来驾驭人(6)别忘了脚本。51CTO:您推荐运维人员可以通过哪些资源、渠道来学习有关自动化方面的经验知识?据我个人的经验,很多专业网站,比如51CTO、网管员世界等都是很不错的媒体,我看有这方面的很多文章,运维人员可以多多涉猎和学习;另外,运维人员还可以根据选择的自动化工具,登陆该工具的网站进行学习,一般这样的网站都会有一些运维的基础知识来辅助运维人员更快地熟悉工具使用。原文链接:相关阅读:网站运维之道之自动化管理viadbanotes.net怎样做一个优秀而懒惰的系统管理员viaixpub系统管理员与开发者界限日渐模糊via51CTOLinux运维趋势2010年9月第0期第4页交流圈:【八卦,趣闻&数字】【八卦,趣闻&数字】【BTRFS】根据Ubuntu开发团队称,由于没有充足的时间,无法完成余下的BTRFS开发工作,因此也就是说在10.10中将不会完全支持BTRFS。-wowubuntu【ZFS】开发NativeZFSforLinux项目的KQInfotech公司将在9月15日左右正式发布一个完全可用的LinuxKernelZFS模块。-Phoronix【Ubuntu】据说Ubuntu11.04将舍弃一直以来的新立德(Synaptic)软件安装程序,而完全采用Ubuntu软件中心的机制。现在应用软件商店在各处大火特火,这也许是Ubuntu将来盈利模式的重点?-Ubuntu【Fedora】代号Laughlin的Fedora14已经发布了Alpha版本,此次版本中,systemd取代upstart成为进程管理,整合了KDE4.5桌面,引入D语言支持,更新Python,Perl和Erlang,并为Perl6增加了Rakudo支持。-Fedora【Apache】到2010年8月为止,在互联网上的213,458,815个网站中,Apache依然是全球最受欢迎的Web服务器,数量高达670万台。-NetCraft【LinuxWebServer】根据2010年7月的数据,全球每十个基于Linux的Web服务器当中,就有三个CentOS,两个半Debian,一个半RHEL,以及一个Ubuntu。-W3techs【Servers】2007年,Intel约有10万台服务器,Facebook约有3万台服务器,微软约有13万台服务器,而Google则据说已经超过了100万台服务器。2010年,Google的服务器数量到达千万了么?-Datacenterknowledge【Varnish】Varnish是一种状态艺术,高性能的web加速器。简单直白的VCL配置文件,和nginx的配置文件有几分相似,强大的监控和分析工具,还有强大的CLI管理工具,这些工具都可以大大的增强varnish的可管理和可分析性。并且由于varnish先进的架构,发展的趋势就是替代squid服务器。-AndyFeng【Sikuli】Sikuli是一种利用图片(快照)去搜索和自动化GUI的视觉技术,Sikuli脚本可以自动化你在屏幕上看到的一切,而这不需要内部API的支持。有些人说Sikuli看起来只是另一个按键向导或是AutoHotkey,但其实Sikuli还有许多在这个直观意义之上的潜力。-vgod(Sikuli项目发起者)【桌面环境】从调查可以看出来,GNOME和KDE是目前的主流环境,而Xfce、LXDE、Openbox和Fluxbox等也已经得到了很高的应用。-Distrowatch【Cobbler】我一直怀疑Cobbler是中国人命名的项目,因为PXE发音为pixie(皮鞋),而Cobbler的中文意思是补鞋匠。-Fenng【Linux入门】硬体驱动程序是学习Linux者的恶梦。笔者认为Ubuntu在这方面比SUSE周全。在RedHat或SUSE的环境中,对于太新或比较冷门的硬件,大多没有预设驱动程序,需要自己去找。但熟悉Ubuntu后,还是要去接触SUSE或RedHat,因为SUSE或RedHat是企业级应用Linux的正统。Linux