木偶:如何创build和pipe理unix用户和组

上周我花了所有的精力去学习木偶。 现在我受到精神缓冲的困扰,对这只野兽驯服了一点信心。 我遇到了许多注释的例子,但由于其无数的变化,我无法辨别推荐的(最近的)木偶风格和惯例,以及临时“为我工作”的方法。 我无法忍受,因为它似乎是基本的东西。

所以。 使用Puppet来pipe理组和用户,用户的主组等同于他们自己的用户名,其他组可以是LANlogin,轮询pipe理员,在任意节点上有shell的用户的shell ,用户的mail ,各种守护进程的守护进程。 pipe理员login将在所有节点上,并且使情况变得更糟,一个局域网login也可能是一个shelllogin。

从我所了解的情况来看,如果您使用虚拟定义,可以多次定义一个用户。 听起来很棒,那么对于一个用户来说,这是怎么工作的呢? 说Bob可以同时使用LAN节点和节点beastie.wan; 是他的loginthebob然后定义两次,在lanusers.pp与groups => ["lan"]和shellusers.pp与groups => ["shell"] ? 如果鲍勃希望他的lan密码与他的shell密码分开怎么办?

我目前使用的代码没有虚拟的定义,用户只是硬编码的单一包含。 有一次,我遇到了一个使用虚拟的例子 ,这是我卡住的地方,因为我不明白如何扩展代码,以便Puppet创build一个主要组,并首先定义所需的组,然后在这些组中join用户。

对。 请正确地提醒我。

现在我受到精神缓冲区溢出的困扰,也没有能力驯服这只野兽的信心。

第一:放松。 我已经知道,当你刚刚学习像Puppet这样的学习曲线时,很容易变得不知所措,无法完成任务。

是他的loginthebob然后定义两次,在lanusers.pp与组=> [“lan”]和shellusers.pp与组=> [“壳”]?

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

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

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

如果鲍勃希望他的lan密码与他的shell密码分开呢?

那么鲍勃应该可能得到2个不同的帐户与不同的login名。

木偶在复杂的用户/组pipe理方面做得不好。 如果我不喜欢这样做,那么部署LDAP之类的东西会好得多,但它比试图击败Puppet成为可能。