免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

[puppet] 自动化运维工具半月谈之---Puppet实战(获奖名单已公布-2014-2-17) [复制链接]

论坛徽章:
0
51 [报告]
发表于 2014-01-27 11:53 |只看该作者
puppet我们是从2.6的时候开始用的,到目前大概有两年了吧,现在生产环境master仍然在使用2.7.x版本的,最近看了puppet3.x的相关文档,新特性尤其是hiera,感觉要完全颠覆了之前模块的写法,所以准备升级到puppet3.x

说说我们的一些经验吧

1. 机器的hostname对puppet来说至关重要,这个是自动化运维的第一步,要事先就制定好规范hostname的命名方法,比较简单的方法就是下面这种

db-1.example.internal ... db-10.example.internal
web-1.example.internal ... web-10.example.internal
ngx-1.example.internal ... ngx-10.example.internal

使用example.internal作为domain, 并将所有的hostname加入到内网dns的zone中,这样子在内网任何一个机器都可以解析到其他机器的hostname.

2. 配置好hostname之后,就可以在site.pp里面加入对应的node信息了,这里可以参考这篇PPT (http://www.slideshare.net/PuppetLabs/roles-talk) 及其PPT最后的提到的参考文章。

我们最开始使用puppet的时候,就是最简单的include这个node所需要的所有模块,这样子造成的一个问题就是:会造成大量的重复信息,比如线上所有的机器都需要include network, puppet, monitor这几个基础模块,那么需要在每个node下都include,当节点规模变得越来越大,使用这种方法对所有机器增加一个模块,是很大的一个工作量,还需要非常小心看是否有node漏掉了。

后来开始慢慢的改进,基本的思想就是“抽象”,一个机器定义一个"role", class role::base 包含所有基础的模块,比如web机器对应的role就是 class role::web inherit role::base,然后在class role::web里面来include tomcat等,这个工作还在进行中

3. 接上,为什么这个工作看上去很简单,但是一直没有完成,一个最根本的原因就是,即使相通role的机器对不同模块可能也需要做一些个性化的配置,比如同是web集群的机器,不同的机器可能需要不同的用户,甚至不同机器上的同个用户需要增加不同开发人员的ssh public key,在hiera出现之前,这种修改只能在代码级别进行修改,对于一些初级的SA来说,这个修改需要非常小心才行。

hiera的出现终于有望解决这个问题了,将代码和数据进行分离,只需要修改一些hiera的数据源文件就能完成以前写case语句才能完成的工作,并且hiera的继承和merge更加的灵活。

4. puppetdb的使用

puppetdb是个很有用的东西,用于节点之间的信息交互。我们用puppetdb收集线上所有机器的hostname和ip的对应关系,然后写入到master的/etc/hosts文件,puppet kick --host 就可以直接使用了

没有再深入它其他的功能了,希望大家分享可以下puppetdb在实际环境中的应用

5. foreman

配置过foreman作为dashboard,没有发现由什么特别的用处,除了查看一些报错信息之外,这个我们用logstash+ES来做了,foreman作为部署工具感觉不如直接写site.pp来的直观,并且由版本跟踪。

6. 版本跟踪

生产环境中大家应该都会配置至少一个 testing 环境来做模块的测试吧,测试通过之后提交到svn,由一个svn hook触发puppet语法检查,然后自动更新到production环境中

7. puppet forege

现在的习惯就是在自己写一个模块之前,写去puppet forge上搜索下是否有对应的模块,然后学习下别人模块是怎么写的,尽量采用这些开源的模块而不是自己来写, 或者参考其中的一些实现,能学到很多东西,比如自定义type provider function等,这些才是puppet发挥更大作用的核心的东西。

8. puppet doc

我认为 puppet 官方的文档是最好的puppet学习资料,https://github.com/puppetlabs/puppet-docs.git 官方文档的github,太详细了. 另外 <pro pp>, 还有以前Puppet-27-Cookbook-48.pdf这个pdf用来学习都不错,@守住每一天 同学的puppet实战看了下目录,一直没机会拜读,写了这么多是不是该送我一本啦?!

未来的展望:

1. hiera必然是未来的方向
2. MCollective未来应该会发挥更大的作用
3. puppet之外的工具, 看好vagrant作为虚拟机部署的工具,直接在vagrantfile中指定hostname,ip和puppet master就可以自动化配置好一台虚拟机了

评分

参与人数 1可用积分 +6 收起 理由
send_linux + 6 很给力!

查看全部评分

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
52 [报告]
发表于 2014-02-03 11:48 |只看该作者
1、谈谈您的运维管理和效率提升方面的经验
很多公司都有成熟的运维管理经验和规范,到底能否给公司带来效率关键看两点,看技术,是否真的能带来这个价值;还有是看管理(是否让你在公司说话做主)。
经验显示,技术都不是问题,不过就是有些人辛苦些,多花点时间精力,总是能达到要求的。
至于后者,管理层是否能接受,不好讲。比如有很多公司都还在用svn,git的优势不讲了,为什么git不被采纳呢??
运维管理也一样,东西都能用,为什么要改成新的??



2、您在使用Puppet的感受
作为集中配置管理工具puppet还是比较不错的,功能强大操作简洁,可以同时管理配置文件、用户、cron任务、软件包、系统服务等等。
目前是属于成熟的软件吧,估计不少公司都在使用,很方便。


3、未来的自动化运维的方向,以及这些自动化运维工具的未来
傻瓜化,呵呵,这个估计是要学习windows吧,简单好用才是王道
集成化,一个操作能完成多个任务,从系统安装到pupet布置完毕这些步骤会更加紧凑
增值服务化,免费的东西或许也会多些付费的资源需求,以满足一些企业的个性需求

论坛徽章:
2
CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-09-18 15:15:45
53 [报告]
发表于 2014-02-07 08:57 |只看该作者
坐等中奖~

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19处女座
日期:2014-03-04 14:36:58
54 [报告]
发表于 2014-02-07 14:35 |只看该作者
过完年,上班了,过来顶下~~~~~~~~~~~~!

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
55 [报告]
发表于 2014-02-07 15:16 |只看该作者
小飞侠xl 发表于 2014-02-07 08:57
坐等中奖~

论坛徽章:
0
56 [报告]
发表于 2014-02-08 16:27 |只看该作者
好书,能送一本吗?

论坛徽章:
0
57 [报告]
发表于 2014-02-08 21:24 |只看该作者
”可以使用语音控制机器的运维,这些自动化运维工具甚至可以对物联网进行运维“

这的确是一个很好的Idea

beyondfly 发表于 2014-01-22 09:05
1、谈谈您的运维管理和效率提升方面的经验
     在运维方面,我一般是采用手动运维的方式,如通过vmstat i ...

论坛徽章:
0
58 [报告]
发表于 2014-02-08 21:26 |只看该作者
jenkins是持续集成的工具,类似huson。而puppet只是配置管理工具。二者可以结合使用。
回复 15# 刺客阿地


   

论坛徽章:
0
59 [报告]
发表于 2014-02-08 21:28 |只看该作者
现在有类似的机器人,但都是CLI的,像Github的Hubot。
还没有出现语音的。待成熟了肯定是个趋势~回复 18# beyondfly


   

论坛徽章:
0
60 [报告]
发表于 2014-02-08 21:53 |只看该作者
楼主的系统安装与监控已经很不错了。在部署上可以尝试下puppet。回复 24# chenyx


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP