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