Есть ли способ перечислить массив всех пользователей в группе в Puppet, как факт или как-то так, чтобы я мог сделать что-то вроде этого?
$users = enumusers('wheel')
each($users) |$user| {
dostuff{"stuff:$user":
user=>$user
}
}
Пользователи управляются через LDAP, но я могу заставить Puppet выбирать пользователей LDAP и согласовывать их всех.
Это своего рода тупица, но у вас может быть внешний генератор фактов, который перечисляет всех ваших пользователей и создает user_USERNAME
факт для каждого. Затем вы можете использовать это в условных операторах в своих манифестах Puppet:
if $user_lars {
file { '/home/lars':
ensure => directory,
owner => lars,
group => lars,
mode => 0700,
}
}
Письмо внешние факты это легко; вы можете использовать любые языки, которые вам удобны, и это может быть очень просто:
#!/bin/sh
getent passwd | cut -f1 -d:
... в зависимости от вашего окружения.
Знаешь, глядя на это, я чувствую себя виноватым, но это лучшее, что я могу придумать прямо сейчас.