Questions tagged «puppet»

Puppet是一种配置管理工具(Unix和Windows),具有自己的域特定语言。

7
小家伙们如何才能有效地学习和使用Puppet?[关闭]
六个月前,在我们的非营利项目中,我们决定开始将系统管理迁移到Puppet控制的环境,因为我们希望从现在到一年之间,我们的服务器数量将大幅增长。 自从做出决定以来,我们的IT人员变得太烦恼了。他们最大的反对意见是: “我们不是程序员,我们是系统管理员”; 模块可在线获得,但许多模块彼此不同。车轮经常被重新发明,您如何确定哪一个合适? 我们仓库中的代码还不够透明,无法找到他们必须如何通过清单和模块来递归某些东西,而清单和模块甚至可能是他们前一段时间编写的。 一个新的守护程序需要编写一个新模块,约定必须与其他模块相似,这是一个困难的过程。 “让我们运行它,看看它如何工作” 社区模块中大量鲜为人知的“扩展”:“ trocla”,“ augeas”,“ hiera” ...我们的系统管理员如何跟踪? 我明白了为什么大型组织会派系统管理员到Puppet课程来成为Puppet大师。但是,如果较小的玩家不参加课程并且基本上通过浏览器和编辑器学习Puppet,他们将如何获得专业水平的学习?


2
为什么在Red Hat和CentOS的主要版本之间进行升级如此困难?
“我们可以将现有的生产EL5服务器升级到EL6吗?” 来自两个完全不同环境的客户的简单要求使我通常的最佳实践回答是“是,但是这将要求协调重建所有系统 ”。 出于停机和资源原因,两个客户都认为完全重建他们的系统是不可接受的选择……当被问到为什么必须完全重新安装系统时,我没有一个很好的答案,“就是这样...” 我不是要引起有关配置管理(“伪造一切 ” 并不总是适用)或客户端应该如何计划更好的响应。这是一个现实的环境示例,该环境中的生产能力已经增长并蓬勃发展,但是没有一个干净的方法可以迁移到其下一代操作系统。 环境A: 具有40个Red Hat Enterprise Linux 5.4和5.5 Web,数据库服务器和邮件服务器,运行Java Web应用程序堆栈,软件负载平衡器和Postgres数据库的非营利组织。所有系统都在两个位于不同位置的VMWare vSphere群集上虚拟化,每个群集都具有HA,DRS等。 环境B: 高频金融贸易公司,在运行生产交易业务的多个主机代管设施中具有200个CentOS 5.x系统,支持内部开发和后台功能。交易服务器在裸机商品服务器硬件上运行。它们具有大量的sysctl.conf,,rtctl中断绑定和驱动程序调整,以降低消息传递延迟。有些具有自定义和/或实时内核。开发人员工作站也正在运行类似版本的CentOS。 在这两种情况下,环境都按原样运行。升级的愿望来自对EL6中可用的更新应用程序或功能的需求。 对于非营利性公司而言,它与Apache,内核和使开发人员感到高兴的一些东西联系在一起。 在贸易公司中,它涉及内核,网络堆栈和GLIBC的一些增强,这将使开发人员感到满意。 两者都不能轻易地打包或更新,而无需彻底改变操作系统。 作为系统工程师,我感谢Red Hat在主要版本之间切换时建议完全重建。一个干净的开始会迫使您重构并在此过程中注意配置。 对客户的业务需求敏感,我想知道为什么这是一项艰巨的任务。RPM打包系统不仅具有处理就地升级的能力,但它带给您的细节很少:/boot需要更多空间,新的默认文件系统,RPM可能破坏升级中的版本,不建议使用和已淘汰的软件包... 这里的答案是什么?其他发行版(基于.deb,Arch和Gentoo)似乎具有此功能或更好的方法。假设我们找到了以正确的方式完成此任务所需的停机时间: 当EL7释放并稳定下来时,这些客户应该怎么做才能避免相同的问题? 还是这种情况下,人们需要每几年辞职以进行全面重建? 随着Enterprise Linux的发展,这种情况似乎变得更糟了。 这是否阻止了任何人使用Red Hat和派生操作系统? 我想这里是配置管理的角度,但是我看到的大多数Puppet安装都无法很好地转换为具有高度定制的应用程序服务器的环境(环境B可能只有一个服务器,其ifconfig输出如下所示)。我会很感兴趣地听到关于如何使用配置管理来帮助组织克服RHEL主要版本冲突的建议。

6
人偶不应该管理什么?
我正在学习一般的配置管理方式,尤其是使用puppet来实现它,我想知道系统的哪些方面(如果有的话)不应该由puppet管理? 举个例子,我们通常认为在将系统借给before的管理之前已经设置了主机名。基本IP连接(至少在用于连接puppetmaster的网络上)必须正常工作。使用puppet自动创建dns区域文件很诱人,但是在启动事物之前,DNS反向指针应该已经存在,否则证书将很有趣。 那么我应该从p中删除IP配置吗?还是应该在第一次启动Puppet之前进行设置,但是仍然要通过Puppet管理IP地址?具有多个IP的系统(例如WAN,LAN和SAN)如何处理? 什么IPMI?您可以使用ipmitool配置大部分(如果不是全部),从而避免获得控制台访问权限(物理,局域网串行,远程KVM等),因此可以使用puppet进行自动化。但是,在每次人偶代理运行时重新检查其状态对我来说听起来并不酷,在执行其他任何操作之前,我希望基本不访问系统。 另一个故事是关于安装更新的。我不打算讲这个特定的问题,关于SF的问题已经很多,不同系统管理员之间的哲学也很多。我本人决定不让puppet更新事物(例如仅ensure => installed),并像我们已经习惯的那样手动进行更新,而当我们对puppet更有信心时(例如,通过将MCollective添加到混合)。 这些只是我现在想到的几个例子。人偶不能忽视系统的任何方面吗?或者,换句话说,应该在供应时设置什么并在系统中“静态”配置什么与通过集中配置管理处理什么之间的界线在哪里?

5
自动化dpkg-reconfigure tzdata
我正在使用puppet来管理debian服务器集群。我需要更改群集上每台计算机的时区。正确的debian方法是使用dpkg-reconfigure tzdata。但是我似乎只能在使用对话框时更改它。有什么办法可以从外壳程序中自动执行此操作,以便我可以编写一个Exec来简化此操作? 如果不是这样,我认为,未来最好的办法可能是让木偶分发/etc/timezone并/etc/localtime与整个集群正确的数据。 任何输入表示赞赏!

6
Puppet vs Chef,来自用户和用例的赞成与反对意见
我已经在Google上搜索并阅读了“到木偶或主厨这就是问题”一文。 我对用例,现实世界中的实现感兴趣,在现实世界中,人们根据实际问题选择了一个或另一个。 我对与补鞋匠问题的融合特别感兴趣(我知道p是这个方向上的一种标准方法);作为任何人在皮匠与厨师的融合方面有任何经验吗? 提前致谢

5
找不到课程,但在那里
当执行puppet agent从一个新的图像调用,我得到一个err: Could not find class custommod错误。该模块本身/etc/puppet/modules/custommod与我们要调用的所有其他模块相同,但是这个模块是固定的。 [site.pp] node /clunod-wk\d+\.sub\.example\.local/ { include base include curl include custommod class{ "custommod::apps": frontend => "false} [...] } 当使用调试输出运行puppetmaster时,它会清楚地找到有关base和curl的信息: debug: importing '/etc/puppet/modules/base/manifests/init.pp' in environment production debug: Automatically imported base from base into production debug: importing '/etc/puppet/modules/curl/manifests/init.pp' in environment production debug: Automatically imported curl from …

5
Linux管理员如何提高他们的Shell脚本和自动化技能?
在我的组织中,我与一组NOC员工,刚起步的初级工程师和少数高级工程师一起工作。所有的重点都放在Linux上。公司培养人才的一个有趣步骤是,从NOC到高级工程师队伍之间存在一条道路。将人才库视为一个相对较新的人才,我发现技能组中的差异会随着时间的流逝而逐渐增加... 有些工程师非常了解一种或几种特定技术,并且经常沉浸其中……例如,MySQL,防火墙,SAN存储,负载均衡器... 还有其他一些通才,可以使用多种技术。 所有人都学习了足够的Linux(命令,进程)以执行他们每天需要和使用的内容。 一些员工之间的一个区别因素是他们对脚本,自动化和配置管理方法的接受程度。例如,我们有两名工程师负责大部分Amazon AWS CloudFormation工作,另一名工程师负责处理大部分Puppet基础架构。也许有四分之一的工程师精通BASH Shell脚本。 在上下文看着这个令人难以置信的高要求在就业市场上的DevOps技能,我很好奇其他组织如何培养这些技能的发展和壮大自己的内部人才。脚本似乎不是一个特别可教的概念。 系统管理员如何改善其Shell脚本? 对于那些不/不能跟上DevOps范例的工程师,还有地方吗? 我们是否只是简单地假设随着这些技术的发展就会有人落后?这样可以吗?

7
厨师和木偶要花钱吗?
我打算使用厨师或人偶进行管理(因为年轻的时候我在考虑更多的厨师,对此我会感觉更好)。 在两个主页上,我都看到有一个“企业版”需要花钱,而且我不打算购买任何东西。如果我不买菜,我会在厨师/人偶中想念什么? 厨师提供什么完全可以花钱的东西? 伪造的东西到底要花多少钱? 从他们的网站对我来说还不太清楚,因为它有点晦涩。
30 puppet  chef 

6
拥有每90天SSH密钥过期的系统
我有一个客户,由于他们对GDPR的解释,现在要求我们每90天更改一次每个密码。对于我们为他们开发的基于Web的系统来说,这很好,因为我们可以实施这些规则。但是它们还要求我们更改用于访问服务器的SSH密钥上的密码,这不好。 是否可以更改现有SSH密钥上的密码? 如果没有,我们可以使用任何工具来处理此问题吗?我在想: 一种。创建新密钥。 b。将所有公钥分发到现有服务器。 C。删除现有的公钥。 d。存档旧的私钥。 我在这里阅读了一些有关Puppet的帖子,但是据我了解,它们的目的只是解决在服务器之间分配公钥而不是每隔n天创建新密钥的问题。我应该进一步研究Puppet吗? 关于密码保留和ssh密钥,社区标准是什么?你怎么做呢?
28 puppet  ssh-keys  gdpr 

10
配置管理工具(Puppet,Chef)是否能够使安装的软件包保持最新?
对于已经在运行配置管理工具的人来说,这可能是一个简单的问题。配置管理工具(例如Puppet或Chef)是否是使安装的软件包保持最新状态的正确方法? 假设我运行许多服务器,大多数基于Debian和Ubuntu。当出现安全更新或错误修复时,配置管理工具是否使从存储库中安装的软件包的更新更容易? 我目前正在运行“无人值守升级”,以使系统自动安装安全更新,但我仍然必须连接到服务器并aptitude update && aptitude safe-upgrade经常运行。自然,随着服务器数量的增加,这变得无聊,乏味且容易出错。 Puppet或Chef之类的工具是否是使安装的软件包保持最新状态的正确方法?你们中有人使用这些工具来避免手动运行aptitude或在15台服务器上等效运行吗?我很确定这些问题的答案是“是的,当然!” 但是在哪里可以找到有关此特定用例的更多信息?我还没有时间深入研究Puppet或Chef,而示例菜谱或类仅显示或多或少的安装一个特定软件包(例如ssh)的小例子。除了官方文档之外,您是否有任何其他资源可以推荐(我当然会在知道哪种工具最适合我之后,就去研究这些文档)。

1
如何使用人偶和.deb文件更新软件包
我试图从本地源deb文件中找出使用puppet更新/升级deb软件包的正确方法。我当前的配置看起来像这样... class adobe-air-2-0-4 { file { "/opt/air-debs": ensure => directory } file { "/opt/air-debs/adobeair-2.0.4.deb": owner => root, group => root, mode => 644, ensure => present, source => "puppet://puppet/adobe-air-2-0-4/adobeair-2.0.4.deb" } package { "adobeair": provider => dpkg, ensure => installed, source => "/opt/air-debs/adobeair-2.0.4.deb" } } 我首先将deb文件复制到客户端计算机,然后在提供程序设置为'dpkg'的情况下使用'package'。这可行,并且我安装了正确的版本。 我的问题是将来更新此软件包的正确方法是什么。我可以简单地更改源文件,然后puppet会知道它是另一个版本并更新此软件包吗?puppet如何确定其安装的软件包的版本与源deb文件的版本? 我是puppet的新手,因此,如果您有改进我现有配置的建议,将不胜感激。


7
人偶安全和网络拓扑
背景: 我终于留出一些时间来参加21世纪,看看Puppet。 到目前为止,我们对办公室内部存储库中的所有服务器配置进行版本控制。需要进行更新时,将更改重新签到存储库中,然后手动将其推送到有问题的计算机上。这通常意味着将SFTP移至远程计算机,然后将具有相关权限的文件从Shell移到适当位置。 因此,我希望Puppet将成为我们现有内容的简单而又令人惊奇的扩展。 现在,我考虑我们目前必须相当安全的过程。假设我们的内部网络将始终比数据中心中的公共网络更加安全。 该过程始终是一种方式。变更从安全的环境遍历到不安全的环境,反之亦然。 总店位于最安全的地方。通过窃取配置或发出恶意修改而造成危害的风险大大降低了。 题: 根据我对Puppet服务器/客户端模型的了解,客户端直接从服务器轮询并提取更新。流量是用SSL包装的,因此无法被拦截或欺骗。但这与我们目前的做法有所不同,因为Puppet服务器需要托管在公共位置。可以集中管理,也可以每个中心维护一个。 所以我想知道: 我是否对从推到拉的变化感到不必要的偏执? 我是否对将所有这些信息集中存储在公共网络上感到不必要的偏执? 其他人如何维护多个网络-每个站点使用单独的服务器? 更新30/07/09: 我猜想我的另一个大问题是必须信任一台机器。人偶管理员将被防火墙保护,固定等。但是即使如此,任何具有侦听服务的公共计算机都具有一定规模的攻击面。 据推测,如果主服务器有权更新任何一个clients客户端上的任何文件,那么这种妥协最终将导致其所有客户端的妥协。可以说是“王国之王”。 这个假设正确吗? 有什么办法可以减轻它?

4
如何预签名木偶证书?
此问题已从堆栈溢出迁移,因为可以在服务器故障时回答。 迁移 9年前。 Puppet要求在受管理的客户端(puppet)和服务器(puppetmaster)之间提供证书。您可以在客户端上手动运行,然后转到服务器上以对证书进行签名,但是如何针对群集/云计算机自动执行此过程?
26 cluster  puppet  cloud 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.