有没有办法在 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:
...取决于您的环境。
你知道,看到这个让我感到内疚,但这是我现在能想到的最好的办法。