criação do usuário add

2

Estou tendo mais de 59 servidores para criar um script para adicionar usuários.

finalidade: se eu estiver criando um usuário em um servidor, isso será refletido em todos os 59 servidores. Como posso conseguir isso?

    
por user62070 06.03.2014 / 03:50

3 respostas

3

Concordo muito que o LDAP ou sistemas semelhantes é o melhor caminho. Se você insistir em fazer isso manualmente, aqui está uma maneira:

A melhor ferramenta para este trabalho é newusers . Você precisará criar um arquivo de texto contendo a lista de usuários e seus detalhes. Se você quiser adicionar o usuário mesmo a cada servidor, esse arquivo precisará apenas de uma linha.

  1. Crie a lista de usuários. O formato geral do arquivo é

    username:passwd:UID:GID:full name,room number,work phone,home phone,other:directory:shell
    

    Então, no seu caso, você precisaria usar algo como

    tom:password1:::"Tom Hanks","101","123456","654321","Tall"::
    danny:password2:::"Danny DeVito","102","222333","333222","Short"::
    

    Note que deixei as opções UID, GUID, directory e shell vazias. Isso significa que os valores padrão serão usados.

  2. Agora que você criou a lista, precisará copiá-la para cada máquina remota e depois adicionar os novos usuários. Salve este pequeno script como newusers.sh :

    #!/bin/bash
       while read ip; do
         scp users.txt root@$ip:/home/root
         ssh root@$ip newusers users.txt
       done
    
  3. Torne o script executável ( chmod a+x newusers.sh ) e execute-o para cada IP no seu arquivo:

    newusers.sh < IPs.txt
    

    O IPs.txt deve conter uma lista dos IPs dos servidores para os quais você deseja copiar, um por linha:

    1.2.3.4
    foo.bar.com
    
  4. Isso tudo será muito mais fácil se você tiver o ssh configurado sem senha. Se não o fizer, execute os seguintes comandos para usar chaves ssh permitindo acesso sem senha (você ainda precisará de uma frase secreta):

    ssh-keygen -t rsa
    while read ip; do ssh-copy-id -i ~/.ssh/id_rsa.pub root@$ip; done < IPs.txt
    
por 06.03.2014 / 04:23
2

Sincronizar usuários e grupos entre servidores é exatamente o que LDAP serve para. Eu recomendo strongmente contra o uso de uma solução caseira para algo assim, especialmente porque há muitas variáveis a serem consideradas ao sincronizar usuários e grupos entre servidores diferentes.

Um guia para configurar o LDAP está fora do escopo desta resposta, mas você pode encontrar um guia de início rápido para o OpenLDAP, a implementação mais popular, em seu site oficial .

    
por 06.03.2014 / 03:58
0

Que tal "software de gerenciamento de configuração" como fantoche, chef, ansible ...

Para mim, a melhor maneira de administrar muitas máquinas hoje.

Por exemplo.

Se você não quiser implantar um mestre de marionetes, pode aplicar qualquer configuração com "aplicar marionete"

Arquivo init.pp

group { "user_one":
  ensure => present,
  gid    => 500,
}

group { "dev_site_one":
  ensure => present,
  gid    => 502,
}

group { "dev_site_two":
  ensure => present,
  gid    => 503,
}

user { "user_one":
  ensure   => present,
  uid      => 500,
  gid      => 500,
  gid      => 501,
  gid      => 502,
  password => '$1$zi13KdCr$zJvdWm5h552P8b34AjxO11',
}

Depois, aplique as alterações.

$ puppet apply init.pp

Reutilizando o código de terdon ...

#!/bin/bash
while read ip; do
 scp init.pp root@$ip:/home/root
 ssh root@$ip puppet apply init.pp
done

Como você pode ver, você pode criar um usuário ou fazer qualquer outra coisa.

    
por 06.03.2014 / 11:28