Estou configurando um cluster de computadores de (20+) máquinas, tenho um servidor ldap central ativo para autenticar usuários e manter o GID e o UID sincronizados no cluster.
Uma máquina atua como um nó principal, que é exposto à rede mais ampla, os usuários ssh para isso e, em seguida, podem ssh nas outras máquinas. Isso funciona bem. Os usuários também podem usar o ssh nas outras máquinas.
Quando um usuário efetua login pela primeira vez no nó principal, o PAM cria um homedir para eles.
Eu preciso, quando isso acontecer, criar simultaneamente um homedir em todas as outras máquinas também.
Estou pensando em possíveis soluções:
- Tenha um script que faça isso, acionado quando um usuário fizer login pela primeira vez no headnode. Não tenho certeza da maneira mais elegante de fazer isso, barrar um script .sh com mais de 20 comandos ssh
- Faça um trabalho cron fazer o mesmo que acima, frequentemente
- Configure algum tipo de voodoo PAM para fazer isso
- Tenha um cron job para criar um homedir para cada usuário no diretório LDAP (não quero fazer isso, só quero usuário que tenha logado no nó principal)
- Outra coisa (sugestões bem-vindas)
No momento, os usuários precisam enviar ssh para todos os nós para criar seu homedir.
Uma analogia grosseira com o que estamos executando e como eu configuro isso pode ser encontrada nesses dockerfiles:
link
link
O cluster é executado 100% no docker, mas em mais de 20 servidores Ubuntu 18 bare metal. Isso é para que eu possa alterar as configurações facilmente.
Por que: Estamos executando o planejador de tarefas SLURM, ele executa tarefas em lote no cluster, como UID dos usuários, se o homedir já existir, [ou seja, o job está sendo executado em um nó que um usuário 's ssh'd em ainda], temos erros. Os usuários podem alterar o diretório de trabalho padrão, mas eu não quero ter que fazer isso
Sugestões e comentários bem-vindos. Obrigado
PS
Mounting /home with NFS, is a possibility, but due to the nature of the usecase, we need /home to write and read from the fast local disks.
* EDITAR
Agora tenho uma solução, mas é apenas para o meu fluxo de trabalho exato. Usando o comando do prolog do SLURM, que é executado como raiz em um nó que está prestes a ter uma execução de trabalho, eu mkdir os usuários para casa. Isso funciona para mim, mas não resolveu como eu faria isso de outra forma, ou com o PAM.