Vindo da administração do Windows, quero aprofundar-me no Linux (Debian). Uma das minhas perguntas mais frequentes que não consegui responder pesquisando na Web (não a encontrei) é: como posso obter o chamado remoting "um para muitos", como no PowerShell para Windows?
Para resumir o básico, eu diria:
Minha opinião no Linux:
- Posso ssh em um servidor e digite meu comando
- Eu recebo o resultado. Para um ambiente de 10 servidores, eu teria que escrever um script (perl / python?) Enviando o comando para cada um deles?
Minha experiência no Windows:
Eu digito meu comando e com "invoke-command" posso "enviar" isso para vários servidores (talvez de um arquivo de texto) para executar simultaneamente e obter o resultado de volta (como um objeto para trabalhos futuros).
Posso até estabelecer várias sessões, a conexão é mantida em segundo plano e enviar seletivamente comandos para essas sessões, e entrar e sair remotamente conforme necessário.
(Eu ouvi falar de chef, fantoche, etc. Isso é algo assim?)
Update 2019:
Depois de tentar muito - sugiro Rex (veja este comentário abaixo ) - configuração fácil (efetivamente, ele só precisa de ssh, nada mais) e uso (se você conhece um pouco de perl , é ainda melhor, mas é opcional)
Com o Rex (ify ) você pode executar o comando adhoc e enviá-lo para um gerenciamento de configuração real (... o que significa: é um CM em primeiro lugar, mas também é bom para tarefas adhoc) O site parece desatualizado, mas atualmente (a partir de 01/2019) está em desenvolvimento ativo e o canal IRC também está ativo.
Com o novo openssh do Windows, existem ainda mais possibilidades
podes tentar:
rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'
:setw synchronize-panes on
( unix.stackexchange.com/a/124800/161003 )Respostas:
Sumário
clusterssh
Para enviar comandos remotos para vários servidores, para iniciantes, eu recomendaria o clusterssh
Para instalar
clusterssh
no Debian:Outro tutorial sobre clusterssh :
Ansible
Quanto a uma estrutura remota para administração de múltiplos sistemas, o Ansible é uma alternativa muito interessante ao Puppet. É mais enxuto e não precisa de agentes remotos dedicados, pois trabalha com SSH (também foi comprado pela RedHat)
Os Playbooks são mais elaborados que as opções da linha de comando.
No entanto, para começar a usar o Ansible, você precisa de uma instalação simples e configurar o arquivo de texto da lista de clientes.
Depois, para executar um comando em todos os servidores, é tão simples quanto:
A saída também é muito bem formatada e separada por regra / servidor e, enquanto a executa em segundo plano, pode ser redirecionada para um arquivo e consultada posteriormente.
Você pode começar com regras simples, e o uso do Ansible ficará mais interessante à medida que você cresce no Linux, e sua infra-estrutura se torna maior. Como tal, fará muito mais que o PowerShell.
Como exemplo, um manual muito simples para atualizar servidores Linux que escrevi:
Ele também possui muitos módulos definidos que permitem escrever facilmente políticas abrangentes.
Índice do Módulo - Documentação Ansible
Ele também possui um interessante centro oficial / rede "social" de repositórios para procurar políticas já feitas pela comunidade. Galáxia Ansible
O Ansible também é amplamente usado, e você encontrará muitos projetos no github, como este para instalação do FreeRadius .
Embora o Ansible seja uma estrutura de código aberto gratuita, ele também possui uma interface de painel da web paga, o Ansible Tower, embora o licenciamento seja bastante caro.
Hoje em dia, depois que a RedHat comprou, a torre também possui a versão de código aberto conhecida como AWX .
Como um bônus, o Ansible também é capaz de administrar servidores Windows, embora eu nunca o tenha usado para isso.
Também é capaz de administrar equipamentos de rede (roteadores, comutadores e firewall), o que a torna uma solução muito interessante como uma solução chave de automação.
Como instalar o Ansible
Rundeck
Mais uma vez, para uma estrutura remota mais fácil de usar, mas não tão potente quanto a Ansible, recomendo o Rundeck .
É uma interface gráfica multiusuário / login muito poderosa, na qual você pode automatizar muitas das tarefas comuns do dia-a-dia e até fornecer visualizações reduzidas a sysops ou pessoas do suporte técnico.
Ao executar os comandos, ele também fornece janelas com a saída dividida por servidor / tarefa.
Ele pode executar vários trabalhos em segundo plano sem problemas e permite que você veja o relatório e a saída posteriormente.
Como instalar o RunDeck
Observe que há pessoas executando o Ansible + RunDeck como uma interface da web; nem todos os casos são apropriados para isso.
Também não é necessário dizer que o uso do Ansible e / ou RunDeck pode ser interpretado como um formulário ou parte da documentação da infra-estrutura e, com o tempo, permite replicar e melhorar as ações / receitas / Playbooks.
Por fim, falando sobre um servidor de comando central, eu criaria apenas um para a tarefa. Na verdade, o termo técnico é uma caixa de salto. As 'caixas de salto' aumentam a segurança, se você as configurar corretamente .
fonte
Se você quiser fazê-lo interativamente, pode usar o
terminator
que permite transmitir um comando para vários terminais.Consulte: Como executo o mesmo comando linux em mais de uma guia / shell simultaneamente?
fonte
tmux
e Crtl + b #:set sync on
Você também pode usar
pssh
(ouparallel-ssh
), que é um cliente SSH que se conecta a uma lista de hosts e executa o comando em todos os hosts em paralelo:fonte
Talvez você possa atingir seu objetivo com uma simples função zsh (bash). Digamos que você tenha servidores l61 l62 l63 e frequentemente precise executar um comando neles:
Então, na linha de comando:
fonte
Se você estiver usando o KDE, aqui está outro método.
- Abra uma janela do Konsole.
Para cada servidor com o qual você deseja se comunicar:
- abra uma guia
- estabeleça uma conexão ssh com o servidor
No menu "Editar", selecione "copiar entrada" para "todas as guias"
Todo comando que você digitar nessa guia será copiado para todos os servidores.
Você pode alternar de uma aba para outra para ver os diferentes resultados.
Nota: meus rótulos de menu (entre aspas) podem estar errados, pois eu não uso uma versão em inglês do KDE
fonte
GNU paralelo
Ele permite linhas simples simples com configurações salvas, para que você possa criar um perfil, "prod ', que conterá uma lista de servidores e opções comuns. Em seguida, basta adicionar o comando desejado e estar pronto. Ele também pode copiar arquivos para o servidor e exclua-os automaticamente no final, e é muito conveniente para scripts ainda maiores.É também muito rápido.
O único problema é que ele tem muitas opções;) Mas a documentação também inclui muitos exemplos, para que você possa vê-los no começo.
fonte
Também quero mencionar "Rex" aqui: https://www.rexify.org/
É uma ferramenta incrível que usa perl + ssh (autenticação de usuário / senha ou chave) e porque o perl está instalado em todos os sistemas (?!) Linux, acho que parece mais natural de usar (tem algumas semelhanças com a Ansible & Co.)
você pode executar comandos adhoc em vários servidores de uma só vez (servidor1, servidor2, servidor ... - após configurar a autenticação ou, alternativamente, usar os parâmetros -p / -u e -s / -S para executar o comando sudo):
ou crie um arquivo em que você especifique "tarefas" diferentes e as chame a partir daí
Ele pode ser instalado via repositórios ou mesmo com o perls cpan (ou
cpanm Rex
) e sua configuração inicial é fácil, consulte:- https://www.rexify.org/ ou
- https://www.rexify.org/docs/guides/ start_using__r__ex.html e
- http://www.admin-magazine.com/Archive/2014/21/First-steps-in-IT-automation-by-Rex
fonte