Temos várias máquinas de desenvolvimento (cada uma pode ter aplicativos e ambientes diferentes, mas são todas Ubuntu 14.04).
Agora, quando tivermos um novo membro, preciso criar uma conta para ele em cada máquina e garantir que as chaves_autorizadas sejam todas iguais.
Existe uma maneira ou mecanismo de criar uma conta apenas uma vez, e ela pode fazer login em todos os servidores (usando a chave ssh).
Responder1
Eu fiz isso uma vez com um design simples.
- Montou a partição /home nos ambientes de desenvolvimento e teste no mesmo disco.
- Dessa forma, o diretório inicial dos usuários é o mesmo, estejam eles em servidores Dev ou Test.
Embora a ideia acima tenha funcionado, como tínhamos alguns servidores e usuários razoavelmente experientes, eu não a recomendaria.
Problemas:
1) Esta é uma idéia muito ruim, considerando que quando um usuário exclui algo em seu diretório inicial no Dev, ele não saberia que está limpando isso também no Teste.
2) O controle de acesso torna-se complicado, pois você não pode controlar quem pode fazer login no ambiente superior.
Portanto, minha abordagem foi usar o script para mover a configuração da conta entre ambientes/servidores conforme necessário.
tar cvf - /home/<username> | ssh <servername> " (cd /home/<username> ; tar xvf - ) "
Responder2
A melhor maneira de gerenciar é usar ferramentas de gerenciamento de configuração, como fantoche ou chef, que o ajudarão a automatizar a criação de usuários, chaves de autenticação ou qualquer coisa repetitiva e facilitarão seu trabalho. Dito isto, se você não tiver senha de login para usuário root em todos os servidores, poderá escrever um script que ssh <host> "useradd [options] username"
.
https://puppetlabs.com