Я настраиваю компьютерный кластер из (20+) машин, у меня есть рабочий центральный сервер ldap для аутентификации пользователей и синхронизации GID и UID в кластере. Одна машина действует как головной узел, который доступен для более широкой сети, пользователи могут подключаться к ней по ssh, а затем могут подключаться по ssh к другим машинам. Это прекрасно работает. Пользователи также могут использовать ssh на других машинах.
Когда пользователь впервые входит в систему на головном узле, PAM создает для него домашний адрес.
Когда это произойдет, мне нужно одновременно создать домашний каталог на всех других машинах.
Думаю о возможных решениях:
На данный момент пользователи должны подключиться по ssh ко всем узлам, чтобы создать свой домашний каталог.
Грубую аналогию того, что мы запускаем и как я это настраиваю, можно найти в этих файлах докеров: https://github.com/dooglz/slurm_docker/blob/master/slurm/ldap_host.dockerfile https://github.com/dooglz/slurm_docker/blob/master/slurm/slurm_node.dockerfile
Кластер на самом деле 100% работает в докере, но на более чем 20 серверах Ubuntu 18 без операционной системы. Так я могу легко менять конфигурации.
Зачем: Мы запускаем планировщик заданий SLURM, он запускает пакетные задания в кластере, как пользовательский UID, если домашний адрес уже не существует [т.е. задание выполняется на узле, в который пользователь еще не подключился по ssh], мы получаем ошибки . Пользователи могут изменить каталог заданий по умолчанию, но я не хочу этого делать
Предложения и комментарии приветствуются. Спасибо
PS
Монтирование / home с помощью NFS возможно, но из-за характера использования нам необходимо / home для записи и чтения с быстрых локальных дисков.
*РЕДАКТИРОВАТЬ Теперь у меня есть решение, но оно предназначено только для моего рабочего процесса. С помощью команды пролога SLURM, которая запускается от имени пользователя root на узле, который собирается выполнить задание, я убираю пользователей домой. Это работает для меня, но не решает, как я бы сделал это в противном случае или с PAM.
Теперь у меня есть решение, но оно предназначено только для моего рабочего процесса. С помощью команды пролога SLURM, которая запускается от имени пользователя root на узле, который собирается выполнить задание, я убираю пользователей домой. Это работает для меня, но не решает, как я бы сделал это в противном случае или с PAM.