Puppet:枚举组内的所有用户

Puppet:枚举组内的所有用户

有没有办法在 Puppet 中枚举一个组内的所有用户数组,无论是作为事实还是其他什么,以便我可以做这样的事情?

$users = enumusers('wheel')
each($users) |$user| {
    dostuff{"stuff:$user":
        user=>$user
    }
}

用户通过 LDAP 进行管理,但我可以让 Puppet 获取 LDAP 用户并使他们全部保持一致。

答案1

这有点笨拙,但你可以有一个外部事实生成器,它枚举所有用户,并user_USERNAME为每个用户创建一个事实。然后,你可以在 Puppet 清单中的条件语句中使用它:

if $user_lars {
  file { '/home/lars':
    ensure => directory,
    owner => lars,
    group => lars,
    mode => 0700,
  }
}

写作外部事实很容易;您可以使用任何您熟悉的语言,它可以简单到如下:

#!/bin/sh
getent passwd | cut -f1 -d:

...取决于您的环境。

你知道,看到这个让我感到内疚,但这是我现在能想到的最好的办法。

相关内容