我正在通过一般的配置管理学习我的方法,特别是使用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到混合)。
这些只是我现在想到的几个例子。系统的任何方面是否应该被人偶接触到?或者,换一种说法,应该在配置时设置什么和系统中“静态”配置的内容与通过集中配置管理处理的内容之间的界限在哪里?
上周我花了所有的精力来学习 Puppet。现在我患有精神缓冲区溢出,并且对能够驯服这头野兽几乎没有信心。我遇到了许多带注释的示例,但由于它们无数的变化,我无法区分推荐的(最近的)Puppet 风格和约定,以及临时的“为我工作”的方法。我受不了,因为它似乎是关于基本级别的东西。
所以。使用 Puppet 管理组和用户,用户的主要组等于他们自己的用户名,其他组可以lan用于局域网登录、wheel管理员、shell在任意节点上具有 shellmail的用户、用户、daemons各种守护进程。管理员登录将在所有节点上进行,更糟糕的是,局域网登录也可能是 shell 登录。
据我了解,如果您使用在某个时候实现的虚拟定义,则可以多次定义用户。听起来很棒,那么对于一个用户来说,这如何与多个组一起工作呢?假设 Bob 可以同时使用 LAN 节点和节点 beastie.wan;他的登录名是否thebob定义了两次,分别在 lanusers.ppgroups => ["lan"]和 shellusers.pp 中groups => ["shell"]?如果 Bob 希望他的 lan 密码与他的 shell 密码分开怎么办?
我目前使用的代码没有虚拟定义,用户只是硬编码的单个包含。有一次,我遇到了一个使用虚拟的例子,这就是我卡住的地方,因为我不明白如何扩展代码,以便 Puppet 创建一个主要组和我首先定义的所需组,然后将用户加入这些组.
对。请正确提示我。