我打算使用厨师或傀儡来做pipe理(我更多地考虑厨师,因为它更年轻,我对它有了更好的感觉)。 在这两个主页上,我看到有一个“企业版”花钱,我不打算购买任何东西。 如果我不买他们,我会在厨师/傀儡中错过什么? 厨师提供的东西究竟是花钱呢? 傀儡报价究竟花费什么? 从他们的网站上我不太清楚,因为它是一种模糊的。
在我的组织里,我和一些NOC的工作人员,初级工程师和一些高级工程师合作。 所有的重点都放在Linux上。 公司发展才能的一个有趣的步骤是从NOC到高级工程队伍。 把人才库看作是一个相对较新的人才,我发现技能组合中有一个分化趋势会随着时间的推移而增长。 有一些工程师能够很好地了解一种或几种特定的技术,并不断沉浸其中,例如MySQL,防火墙,SAN存储,负载均衡器等。 还有其他人是通才,可以导航多种技术。 所有人都学习了足够的Linux(命令,进程)来完成他们每天所需要的和使用的任务。 一些员工之间的差异化因素是他们如何包含脚本,自动化和configurationpipe理方法。 例如,我们有两名工程师负责Amazon AWS CloudFormation的大部分工作,另一名负责处理大部分Puppet基础设施。 也许四分之一的工程师擅长BASH shell脚本。 在DevOps技能在求职市场中 令人难以置信的高度需求的背景下,我很好奇其他组织如何促进这些技能的发展并培养他们的内部人才。 脚本似乎不是一个特别可教的概念。 系统pipe理员如何改进他们的shell脚本? 对于那些没有/不能跟上DevOps范式的工程师,还有一个地方吗? 我们是否简单地认为,随着这些技术的发展,有些人会被抛在后面呢? 可以吗?
我正在考虑推出新的configurationpipe理工具来取代我们自己开发的解决scheme。 事实上的标准是Chef和Puppet,它们都是以Ruby为中心的(尽pipe可以用来部署非Ruby环境)。 我们绝大部分的开发工作都是在Python中完成的,我们的内部部署工具大量使用Fabric 。 所以我正在向Salt学习,因为它也是Python,尽pipe它不像Chef或Puppet那么成熟。 但是由于我对选项不够熟悉,我发现很难比较苹果与苹果。 除了较小的社区,我是否会放弃使用Salt而不是木偶/厨师? 更新 我发布这个问题已经有六个月了。 尽pipe它已经被closures了,但已经被看了1000多次了,所以我想我会评论一下我的经验。 我最终决定了Puppet,因为它有一个更大的社区。 然而,这是一个非常令人沮丧的经验,主要是由于令人费解的Puppetconfiguration语法。 由于我现在有一个比较两个参考的框架,我最近再次看看盐 – 我不回去。 这是非常非常酷的。 我最喜欢的东西: 推拉式configuration模型的无缝集成。 木偶使用拉模式(节点定期轮询服务器更新),并有一个名为木偶的姐妹组件推动变化。 两者对我都很重要,我更喜欢Salt的工作原理。 当你有很多的节点时,Salt也会执行得更快。 configuration语法使用YAML,这是一个简单的文本格式,使用缩进和项目符号点。 您也可以select通过模板使用其他configuration格式。 根据我的经验,这使得盐约10倍容易学习和维护。 基于Python的。 这是我首先看到Salt的最大原因。 它最终成为我留下的一个更小的原因。 但是,如果您是像我们这样的Python商店,那么开发Salt插件会更容易。
我使用puppetpipe理一个debian服务器集群。 我需要更改群集上每台机器的时区。 正确的debian方法是使用dpkg-reconfigure tzdata 。 但是,如果我使用对话框,我似乎只能改变它。 有没有办法从shell自动化这个,所以我可以写一个Exec来简化这个过程? 如果不是的话,我认为下一个最好的方法可能是让puppet在整个群集中分配正确的数据/etc/timezone和/etc/localtime 。 任何input赞赏!
我已经search了一下,阅读了“傀儡或厨师即是问题”的文章。 我对使用案例,真实世界的实现感兴趣,人们在真实的问题基础上select了一个或另一个。 我特别感兴趣的是与皮匠问题的整合 (我知道木偶在这个方向上是一个标准方法)。 作为任何人有任何经验的鞋匠 – 厨师整合 ? 提前致谢
我通过一般的configurationpipe理学习了自己的方式,特别是使用puppet来实现它,我想知道系统的哪些方面(如果有的话) 不应该用puppet来pipe理。 举个例子,我们通常认为在将系统借给傀儡pipe理之前已经build立了主机名。 基本的IP连接,至less在用来联系木偶大师的networking上,必须工作。 使用木偶来自动创buildDNS区域文件是诱人的,但DNS反向指针应该已经在启动东西或证书将是有趣的。 那么我应该从puppet中去掉IPconfiguration吗? 还是应该在第一次启动木偶之前设置它,但是仍然用木偶pipe理ip地址? 有多个IP的系统(如WAN,LAN和SAN)呢? 怎么样IPMI ? 你可以用ipmitoolconfiguration它的大部分(如果不是全部的话),从而避免获得控制台访问权限(物理,串口over LAN,远程KVM等等),这样就可以通过puppet实现自动化。 但重新检查每个傀儡代理商的状态对我来说听起来并不酷,而在进行其他任何事情之前,基本的进入系统的灯光是我想要的。 另一个故事是关于安装更新。 我不是在这个具体的问题上,SF和许多不同的系统pipe理员之间的哲学已经有很多问题了。 我自己,我决定不让木偶更新东西(比如只ensure => installed ),并且像我们习惯的那样手动进行更新,而当我们对木偶更有信心的时候,这个任务的自动化将会更晚。通过添加MCollective混合)。 这些只是我脑海中的一些例子。 系统的任何方面都应该放在傀儡拿不到的地方吗? 或者换句话说,在系统configuration时应该设置什么和在系统中“静态”configuration之间的界限,以及通过集中configurationpipe理来处理什么?
“我们可以将现有的生产EL5服务器升级到EL6吗?” 来自两个完全不同环境的客户提出的一个简单的要求促使我回答“是的,但需要协调重build所有系统 ”。 这两个客户都觉得,对系统进行彻底的重build对于停机和资源的原因来说是不可接受的select。当被问及为什么有必要完全重装系统时,我没有一个好的答案,“这就是……” 我并不是想引起关于configurationpipe理的反应(“木偶一切 ” 并不总是适用 ),或者客户应该如何计划好。 这是一个现实世界的例子,在生产能力上已经发展壮大,但是没有看到转向下一个版本操作系统的干净path。 环境A: 拥有40台Red Hat Enterprise Linux 5.4和5.5 Web,数据库服务器和邮件服务器的非营利组织,运行Java Web应用程序堆栈,软件负载平衡器和Postgres数据库。 所有系统都在不同位置的两个VMWare vSphere群集上虚拟化,每个群集都有HA,DRS等。 环境B: 拥有200个CentOS 5.x系统的高频金融交易公司,在多个同地点设施中进行生产交易操作,支持内部开发和后台function。 交易服务器在裸机商品服务器硬件上运行。 他们有许多sysctl.conf , rtctl ,中断绑定和驱动程序调整,以降低邮件延迟。 一些有定制和/或实时内核。 开发者工作站也运行类似的CentOS版本。 在这两种情况下,环境运行良好。 升级的愿望来自对EL6中新的应用程序或function的需求。 对于非盈利公司来说,它与Apache,内核以及一些能够让开发者感到高兴的东西联系在一起。 在交易公司,这是关于内核,networking堆栈和GLIBC的一些增强,这将使开发人员高兴。 如果不彻底改变操作系统 ,两者都不能轻易打包或更新。 作为系统工程师,我很欣赏红帽build议在主要版本之间移动时进行完整的重build。 一个干净的开始迫使你重构并注意一路上的configuration。 对于客户的业务需求敏感,我想知道为什么这需要这么艰巨的任务 。 RPM打包系统不仅能处理就地升级,而且还有一点点细节让你: /boot需要更多的空间,新的默认文件系统,RPM可能会打破升级中,不推荐使用和不使用的软件包。 这里的答案是什么? 其他发行版(基于.deb,Arch和Gentoo)似乎具有这种能力或更好的path。 比方说,我们find了以正确的方式完成这项任务的停机时间: 当EL7发布并稳定时,这些客户应该做些什么来避免相同的问题呢? 还是这样的情况是每隔几年人们需要辞职去重build? 这似乎已经变得更糟,因为企业Linux已经演变…或者我只是想象呢? 这是否阻止了任何人使用红帽和衍生操作系统? 我想有configurationpipe理的angular度,但是我所看到的大多数Puppet安装并不能很好地转化为具有高度自定义的应用程序服务器的环境 ( 环境B可能有一个服务器,其ifconfig输出如下所示 )。 不过,我很乐意听到关于如何使用configurationpipe理来帮助组织跨越RHEL主要版本的build议。
傀儡和厨师工具新。 看起来像他们正在做的工作可以用shell脚本来完成。 也许这是在shell脚本中完成,直到这些脚本出现。 我会同意他们更可读。 但是,除了可读性外,还有别的优点吗?
六个月前,在我们的非盈利项目中,我们决定开始将我们的系统pipe理迁移到Puppet控制的环境中,因为我们期望从现在到一年之间,我们的服务器数量会大幅增长。 自从做出这个决定后,我们的IT人员变得有点太烦人了。 他们最大的反对意见是: “我们不是程序员,我们是系统pipe理员”; 模块可以在线获得,但是许多模块有所不同; 车轮经常被重新发明,你如何决定哪一个适合这个法案? 在我们的回购中的代码是不够透明的,要找出他们不得不通过它们可能甚至写了自己前面的清单和模块recursion的东西是如何工作的; 一个新的守护进程需要编写一个新的模块,惯例必须与其他模块相似,这是一个困难的过程; “让我们运行它,看看它是如何工作的” 在社区模块中几乎没有“扩展名”:“trocla”,“augeas”,“hiera”…我们的系统pipe理员如何跟踪? 我可以看到为什么一个大型组织将派遣他们的系统pipe理员到木偶课程成为木偶大师。 但是,如果小型玩家不上课程,基本上通过浏览器和编辑学习,那么小型玩家如何才能将木偶学到专业水平呢?