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