Puppet:如何创建和管理 unix 用户和组

dru*_*ire 13 users groups puppet

上周我花了所有的精力来学习 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 创建一个主要组和我首先定义的所需组,然后将用户加入这些组.

对。请正确提示我。

Bel*_*dez 6

现在我患有精神缓冲区溢出,并且对能够驯服这头野兽几乎没有信心。

第一:放松。我了解到,当您不熟悉 Puppet 等具有学习曲线的东西时,很容易变得不知所措而无法完成很多工作。

然后他的登录 thebob 是否定义了两次,在 lanusers.pp 中使用组 => ["lan"] 和在 shellusers.pp 中使用组 => ["shell"]?

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

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

node beamin {
    Account <| groups == 'shell' |>
}
Run Code Online (Sandbox Code Playgroud)

如果 Bob 希望他的 lan 密码与他的 shell 密码分开怎么办?

那么 Bob 可能应该获得 2 个不同的登录名的不同帐户。