Назад | Перейти на главную страницу

Марионетка: перечисление всех пользователей в группе

Есть ли способ перечислить массив всех пользователей в группе в 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:

... в зависимости от вашего окружения.

Знаешь, глядя на это, я чувствую себя виноватым, но это лучшее, что я могу придумать прямо сейчас.