Eu utilizaria o Puppet para distribuir as chaves do host público para todas as máquinas, para que os usuários pudessem fazer login e não precisar manter um arquivo known_hosts (contanto que eles sejam SSHing nessas 9.000 máquinas).
Chaves do host:
-
Faça com que cada nó crie uma chave pública / privada. É mais seguro gerar uma chave na máquina que a utiliza, assim a chave privada nunca sai do host e não precisa ser protegida.
-
Use o recurso "recursos exportados" do Puppet para enviar a Chave Privada para um banco de dados central.
-
Em todos os nós, insira os "recursos exportados" para gerar o arquivo de chaves do host conhecido nesta máquina. Qualquer novo nó aparecerá em todos os outros nós dentro de 2 fantoches.
Aqui está um exemplo de recursos exportados.
Aqui está um exemplo específico de distribuição de chaves de host SSH.
Acesso do usuário:
Você pode usar o Puppet para definir o arquivo sshd_config de cada host para confiar nas chaves do host e tal, ou o que você quiser que a política seja:
augeas { 'sshd_config':
context => '/files/etc/ssh/sshd_config',
changes => [
'set PermitRootLogin without-password',
'set ANOTHERSETTING VALUE',
],
}
Contas de usuário:
O Puppet também pode criar as 30 contas em todas as máquinas. Eu gosto do módulo de contas que acompanha o Puppet Enterprise. No entanto, é fácil fazer isso se você tiver a versão de código aberto. Veja um exemplo de como fazer isso .
Alguns conselhos gerais:
9.000 máquinas é um ambiente grande. Você desejará manter seus arquivos Puppet no Git, usar uma estrutura de Integração Contínua e testes, como o Jenkins CI, e ter um ambiente de teste para testar as coisas antes de pressionar. A forma como fazemos isso na Stack Exchange, Inc é documentada nesta postagem do blog .