木偶:如何创建和管理UNIX用户和组


12

上周,我全力以赴学习Puppet。现在,我遭受了精神上的缓冲之苦,对驯服这种野兽的信心也很小。我遇到了许多带注释的示例,但是由于它们的无数变化,我无法区分推荐的(最近的)Puppet样式和约定以及临时的“为我工作”方法。我不能忍受,因为它似乎与基本级别的东西有关。

所以。使用Puppet管理组和用户,用户的主要组等于他们自己的用户名,其他组可以lan用于lan登录,wheel管理员,shell在任意节点上具有shell mail的用户,用户,daemons各种守护程序。管理员登录名将出现在所有节点上,更糟糕的是,局域网登录名也可能是Shell登录名。

据我了解,如果您使用某个时候实现的虚拟定义,则可以多次定义用户。听起来不错,那么对于一个用户来说,如何与多个组一起使用?假设Bob可以同时使用LAN节点和节点beastie.wan;是他的登录名thebob然后定义了两次,分别在lanusers.pp中groups => ["lan"]和在shellusers.pp中groups => ["shell"]?如果Bob希望将其LAN密码与Shell密码分开,该怎么办?

我当前使用的代码没有虚拟定义,用户只是硬编码的单个包含。有一次,我遇到了一个使用虚拟机示例,因为我不了解如何扩展代码,所以Puppet创建了一个主要组和我首先定义的必需组,然后将用户加入这些组中,这是我陷入困境的地方。

对。请正确提示我。

Answers:


6

现在,我遭受了精神上的缓冲之苦,对驯服这种野兽的信心也很小。

第一:放松。我了解到,当您刚接触Puppet等具有学习曲线的事物时,很容易变得不知所措并且无法完成很多工作。

然后他的登录thebob定义了两次,在lanusers.pp中具有组=> [“ lan”],在shellusers.pp中具有组=> [“ shell”]?

不。使用(在users.pp)(实际上)在一个地方实际上定义它groups => ['shell', 'lan',]

在节点上,实现所需的用户。例如,如果node beamin我们希望所有shell用户:

node beamin {
    Account <| groups == 'shell' |>
}

如果Bob希望将其LAN密码与Shell密码分开,该怎么办?

然后Bob可能应该获得2个具有不同登录名的不同帐户。


谢谢。您对第一部分的观点是正确的,我确实不知所措。但是您的第二个答案有所帮助,它似乎使其他想法动起来了,现在,我证明了工作正常,虚拟定义的用户正在其适当的位置实现。感谢您的帮助。:)
drumfire

没问题 在虚拟声明之前,此问题涉及非常复杂的解决方案。认为自己很幸运,您现在就登上了Puppet Express ;-)。
Belmin Fernandez

我正在使用虚拟声明,但是我需要一些用户位于某些主机上的“ sudo”组中,而不是其他主机上。这不能解决那种情况(而且我很难弄清楚该做什么:D)。
jjmontes 2012年

3

Puppet不能很好地处理复杂的用户/组管理。您最好部署LDAP之类的东西-就像我不喜欢它那样,它比尝试击败Puppet提交要好得多。


或FreeIPA。Puppet非常适合需要在系统上但不能管理常规用户的服务帐户...
ewwhite 2012年

4
出于所有应有的尊重(您是SF的最高成员):我认为这不能回答问题。问:“我应该如何在Puppet中创建和管理UNIX用户和组?”。答:“ LDAP”。我相信这样的答案更适合作为评论。当然,如果以前已经在meta或其他内容中讨论过这个问题,也许我只是一无所知。请不要恨我:-)。
Belmin Fernandez

3
@ BeamingMel-Bin:SF具有强烈的“适合工作的工具”的精神。如果有人问“用锤子敲打这颗螺丝才能使其插入的最佳方法是什么?”,我们会说“买螺丝刀”,而不是冗长地论述不同锤子技术的好处。这是因为这里的大多数提问要么所以没有经验或无知,他们是不知道,更好的解决方案存在,也不即使是更好的解决方案可能存在(并因此他们不知道要问“有没有更好的方式在此带动螺丝”或“用此螺丝驱动的最佳方法是什么?”)。
womble

1
@drumfire:同样,如果您要问如何做一些愚蠢的事情,正确的答案是“不要那样做”。SF是这样工作的。我们不是在这里帮助人们做一些愚蠢的事情,我们是在这里做更有效的系统管理员。
womble

3
SF,作为原始三部曲的一部分,已经存在了很长的时间,并且比其他更单一的SE网站具有更强的“独立精神”。还有要考虑的用户组成。系统管理员是胡思乱想的。
womble
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.