Puppet 不应该管理什么?

Luk*_*404 70 linux configuration-management puppet

我正在通过一般的配置管理学习我的方法,特别是使用puppet来实现它,我想知道系统的哪些方面(如果有的话)应该用 puppet 管理?

例如,在将系统借给 puppet 的管理之前,我们通常认为主机名已经设置是理所当然的。基本的 IP 连接,至少在用于联系 puppetmaster 的网络上,必须正常工作。使用 puppet 自动创建 dns 区域文件很诱人,但 DNS 反向指针应该在启动之前就已经到位,否则证书会很有趣。

那么我应该从 puppet 中省略 IP 配置吗?或者我应该在第一次启动 puppet 之前设置它但仍然使用 puppet 管理 IP 地址?具有多个 IP 的系统(例如,用于 WAN、LAN 和 SAN)会怎样?

IPMI怎么样?您可以使用ipmitool配置大部分(如果不是全部),从而避免获得控制台访问(物理、串行网络、远程 KVM 等),因此可以使用 puppet 进行自动化。但是在每次 puppet agent 运行时重新检查它的状态对我来说听起来并不酷,而且在做任何其他事情之前我希望对系统进行基本的熄灯访问。

另一个完整的故事是关于安装更新。我不打算讨论这个具体问题,已经有很多关于 SF 的问题以及不同系统管理员之间的许多不同哲学。我自己,我决定不让傀儡更新的东西(如只ensure => installed),并因为我们已经习惯了做手工更新,离开这个任务的自动化到以后的一天,当我们与木偶(如更加自信。通过增加MCollective到混合)。

这些只是我现在想到的几个例子。系统的任何方面是否应该被人偶接触到?或者,换一种说法,应该在配置时设置什么和系统中“静态”配置的内容与通过集中配置管理处理的内容之间的界限在哪里?

vor*_*aq7 26

一般规则:如果您使用配置管理,请尽可能管理配置的各个方面。您越集中,就越容易扩展您的环境。

具体示例(摘自问题,所有“这就是您想要管理它的原因”的叙述):


IP网络配置

好的,当然,在将机器放入机架之前,您已在机器上配置了地址/网关/NS。我的意思是,如果您不这样做,您将如何运行 puppet 来完成其余的配置?

但是现在假设您将另一个名称服务器添加到您的环境中并且您需要更新您的所有机器——您不希望您的配置管理系统为您做这件事吗?

或者假设您的公司被收购,您的新母公司要求您将地址从 192.168.0.0/24 更改为 10.11.12.0/24 以适应他们的编号系统。

或者你突然得到一份庞大的政府合同——唯一的问题是你必须现在就打开 IPv6 RIGHT FREAKIN'否则交易会失败......

看起来网络配置是我们想要管理的......


IPMI 配置

就像 IP 地址一样,我确定您在将机器放入机架之前进行了设置——在任何具有此功能的机器上启用 IPMI、远程控制台等只是一个很好的常识,而这些配置不会变化不大...

... 直到我在上面的 IP 配置中提到的假设性收购 -- 您被迫腾出那些 192.168-net 地址的原因是因为根据您的新公司霸主,这是 IPMI 土地,您需要更新所有 IPMI 卡现在,因为他们会践踏某人的保留 IP 空间。

好的,这里有点牵强,但就像你说的 - 所有这些都可以用 来管理ipmitool,那么为什么不让 Puppet 运行该工具并在它做所有其他事情的同时确认配置呢?我的意思是它不会伤害任何东西,所以我们也可以包括 IPMI...


更新

软件更新更像是一个灰色地带——在我的组织中,我们为此评估了 puppet 并发现它“非常缺乏”,因此我们将其radmind用于此目的。没有理由 Puppet 不能调用 radmind——事实上,如果/当我们迁移到 Puppet 进行配置管理时,这正是将会发生的事情!

这里重要的事情是以标准方式安装所有更新(整个组织的标准或平台内的标准)——只要您已经彻底测试过,Puppet 就没有理由不启动您的更新过程一切以确保 Puppet 不会搞砸任何事情。
如果您已经确定 Puppet 无法单独完成工作,那么 Puppet 也没有理由不调用更适合此任务的工具......


Sir*_*rex 11

不要重新发明轮子。

是的,您可以拥有 50 个 puppet 虚拟用户资源,并根据需要在您的模块中实现它们……但如果可以,请使用 LDAP。

我是从痛苦的经历中说出来的。尽管 ldap 在这里还不是一个选择。

另一个例子是推出主机文件,而不仅仅是使用 DNS。

  • 我认识所有这些词,但我仍然不确定你想说什么。 (3认同)
  • 人们真的使用 Puppet 而不是 LDAP 来管理用户帐户吗?? (3认同)
  • 我想说;傀儡是“信息”的中心位置。DNS 和 LDAP 也是如此。不要试图用 puppet 来完成他们的工作,它是垃圾......我说这是看到巨大的 /etc/hosts 文件在每次新主机加入网络时被 puppet 推出。 (2认同)
  • 每个工具都有自己的位置,但使用 puppet 进行用户帐户管理或使用 LDAP 进行文件存储是*滥用*。 (2认同)

小智 8

  • Puppet 不是编排系统。特别是:
    • Puppet 不太适合 VM 编排,因为 VM 有自己的生命周期,应该受到尊重。
    • Puppet 不太适合应用程序发布管理/复杂升级。为此可以利用独立的 puppet 运行,但至少它不是 Puppet 控制的,而是您的包装脚本或人类机器人,这很好。
  • Puppet 不是一个好的用户管理系统(它必须管理每个用户条目,甚至删除的用户,才能有效。所以寻找其他解决方案)
  • Puppet 不是一个好的配置数据库(看看使用某种外部数据库,以及 ENC、Hiera 或一些类似的胶水)

当然,你可以用 Puppet 做所有这些事情……但这对他们来说并不是最好的解决方案。有时你应该放下锤子,去找扳手。

然而,Puppet 非常擅长维护机器的基本配置,以及安装让您执行 VM 和发布编排、用户管理等的工具。