expert1
发表于 2015-12-02 17:42
此外喜欢puppet是因为它的framework足够牛逼,跟nagios差不多,可以随意扩展,自定义provider/facter/fuction. 等等等。
proxydemo
发表于 2015-12-02 18:09
1 目前大家都在用什么自动化软件包?
基本上大型的公司都在用这个,典型的折腾要人命。puppet已经很成熟了。有规模的公司都在运维文档的标准化中,写入了很多东西。要改,那是相当的困难,有时间还不如出一本书呢。而且后来的分布式工具也没有多大的特别优势。全部改那是跟自己过不去啊。
Ansible最近貌似很火,据我所知,创业型的公司一般用这个,一些大神们也在博客上发布了关于ansible的技术文档,他的优点是可以给一些不太熟悉linux的人操作。而且没有客户端。这些就是puppet和SaltStack不能比的。
2 我也许说的不全 有没有大家继续补充?
貌似还有chef,当然还有类似Fabric,jenkins,混搭使用的,不过国内用chef和SaltStack是真少
3 对于上述选型的话 你选择什么? 依据是什么
成熟的大型公司,有大量ops团队的首选当然是puppet,经验和稳定性都摆在那里。
如果是初创公司,应该是ansible。
如果技术团队在牛一点,应该会选择SaltStack,再和其他工具比如docker搭配起来用。
总体来说看公司项目,看运维团队实力
hiyachen
发表于 2015-12-02 18:53
1 目前大家都在用什么自动化软件包? 场景是什么样子的呢?
目前使用puppet,用于开发测试部署运维的一个环节。
java用的是maven,部署和运维用的puppet。
2 我也许说的不全 有没有大家继续补充? 在你得使用的工具又管理着多少服务器呢?
监控服务,50多台。
分布式文件系统:20多台
云计算:100多台。
3 对于上述选型的话 你选择什么? 依据是什么
技术能力和稳定性。
期待使用:slatstack.
proxydemo
发表于 2015-12-02 18:59
本帖最后由 proxydemo 于 2015-12-02 19:00 编辑
已回,请删。。。
action08
发表于 2015-12-02 20:34
puppet还是蛮强大的,是个运维脚步,也是面向对象
语言挺神奇的
chenyx
发表于 2015-12-03 10:14
用puppet的应该还是挺多的吧。
据我所知,红帽的openstack的那个allinone安装程序就是基于puppet的,大厂都用的技术,肯定错不了。
expert1
发表于 2015-12-07 11:45
Puppet的erb/define的确太猛了。比如你一个机器运行若干个MySQL的instance那就需要多个my.cnf
用define/erb太爽了。不知道ansible/saltstack如何解决这种问题的。
SeAL80s
发表于 2015-12-08 12:13
这书是先上架卖,然后再出版吗?那么出版前买的,是不是都算盗版啊?!
laputa73
发表于 2015-12-08 13:39
1.比较倾向ansible这种没有agent的模式。
运维毕竟不仅是配置,还有很多一次性的操作,也不好归到监控工具里面去,还是希望兼容一下。
而且ansible的框架也可以支持sh,perl等其他语言实现模板。比较灵活。
尤其是机器比较少的情况下,不需要额外的管理服务器,也算一个优势。
2.考虑到整体devops.很可能还需要部署监控类的agent,比如ganglia,zabbix等
ansible 无agent的特点其实也并不明显
最好是ansible能把监控也顺手都实现了。
GB_juno
发表于 2015-12-09 12:32
1 目前大家都在用什么自动化软件包? 场景是什么样子的呢?
puppet,salt,ansible都用过。基本都是用在配置管理上,就是不同服务器有不同的文件定义。另外就是快速部署系统用到。这里说一下我的一些感想
1.puppet最稳定最可靠,毕竟那么多年的产品。但是比较不好的一点在于mcollective是收购过来的,要装两套东西,而且hostname+ssl的设置有点坑。另外,puppet的学习曲线比较高,没有花一些时间不能上手;
2.salt stack本来是用来替换puppet的,可惜不稳定,丢机器这种事情时有发生,用了一段时间之后发现没有办法接受要重复检查漏掉机器的配置问题。不过saltstack的安装和部署都很简单,也很容易上手,写起来也比较快,可以用来给机器做初始化配置;
3.ansible ansible是最简单的agentless软件,即装即用,学习和使用都很快,开发人员用这个也比较多,毕竟是最简单最好用的工具了。可惜写执行过程完全是黑盒的,你完全不能看到,即使用了callback_plugins,执行内容没有办法即时查看。因为执行过程中你完全不清楚,得等到执行完成才能看到。这在我们编译代码的时候有点没有办法接受。因此实际上初始化和部署常用软件之类的用ansible代替了puppet,但是做代码编译之类的工作还是交给了jenkins,jenkins脚本毕竟可以让你即时看到整个的编译和发布过程,随时暂停,编译完成以及处理相关依赖后交给ansible把软件部署到生产上。
一些经验:
1.要事后记得检验,当你部署过去了,你确认了是否就是你发布的那个版本,这些验证方式我一般也是通过ansible获取相关想要确认的信息之后集中到某个地方进行查看和对比;
2.写好配置好,找测试机验证,现在虚拟机那么多,验证起来也比较容易,最好模拟和生产一样的网络环境下进行操作,不然写错配置就悲剧了;