Usando DSH (shell distribuído) para executar comandos Linux em várias máquinas

Usando DSH (shell distribuído) para executar comandos Linux em várias máquinas

Administradores de sistemas Conheça muito bem a importância de poder monitorar e administrar inúmeras máquinas em pouco tempo e, de preferência, com o mínimo de correr possível. Seja um pequeno ambiente em nuvem ou um enorme cluster de servidor, a capacidade de gerenciar centralmente computadores é essencial.

DSH Run Comandos em vários servidores

Para conseguir parcialmente, vou mostrar como usar uma pequena ferramenta bacana chamada Dsh Isso permite que um usuário execute comandos em várias máquinas.

Leia também: PSSH - Executar comandos em vários servidores Linux Remote

O que é DSH?

Dsh é curto para “Concha distribuída" ou "Concha da dançarina”Está disponível gratuitamente nas principais distribuições de Linux, mas pode ser facilmente construído a partir da fonte se sua distribuição não o oferecer em seu repositório de pacotes. Você pode obter a fonte em.

  1. http: // www.netfort.gr.JP/~ dançarino/software/dsh.html.en

Instale o DSH (shell distribuído) no Linux

Nós vamos assumir um Debian / Ubuntu ambiente para o escopo deste tutorial. Se você estiver usando outra distribuição, substitua os comandos apropriados para o seu gerenciador de pacotes.

No Debian / Ubuntu

Primeiro, vamos instalar o pacote via APT:

$ sudo apt-get install dsh
Em RHEL / CENTOS / FEDORA

Este método é para aqueles que não estão usando Debian, e quero compilá -lo de bolas de alcatrão de origem. Primeiro você precisa compilar “libdshconfig”E instale.

# wget http: // www.netfort.gr.JP/~ dançarino/software/downloads/libdshconfig-0.20.10.cvs.1.alcatrão.gz # tar xfz libdshconfig*.alcatrão.gz # cd libdshconfig-* # ./configure; Faça # fazer instalar

Então compile dsh e instalar.

# wget http: // www.netfort.gr.JP/~ dançarino/software/downloads/dsh-0.22.0.alcatrão.gz # tar xfz dsh-0.22.0.alcatrão.gz # cd dsh-* # ./configure; Faça # fazer instalar

O arquivo de configuração principal “/etc/dsh/dsh.conf ” (Para Debian) e "/usr/local/etc/dsh.conf" (para Chapéu vermelho) é bem direto, mas desde rsh é um protocolo não criptografado, vamos usar Ssh Como a concha remota. Usando o editor de texto de sua escolha, encontre esta linha:

remotoShell = rsh

E mude para:

remotoShell = ssh

Existem outras opções que você pode passar aqui, se optar por fazê -lo, e há muitas para encontrar no Página do Homem DSH. Por enquanto, vamos aceitar os padrões e dar uma olhada no próximo arquivo, /etc/dsh/máquinas.lista (para Debian).

Para chapéu vermelho Sistemas baseados que você precisa para criar um arquivo chamado “máquinas.lista" em "/usr/local/etc/”Diretório.

A sintaxe aqui é muito fácil. Tudo o que deve fazer é entrar nas credenciais de uma máquina (nome de anfitrião, Endereço de IP, ou Fqdn) Um por linha.

Observação: Ao acessar mais de uma máquina simultaneamente, seria o que você pode configurar o SSH sem senha baseado em teclas em todas as suas máquinas. Isso não apenas fornece facilidade de acesso, mas em termos de segurança, também endurece sua máquina.

Meu "/etc/dsh/máquinas.lista" ou "/usr/local/etc/máquinas.lista”O arquivo diz:

172.16.25.125 172.16.25.126

Depois de entrar nas credenciais das máquinas que deseja acessar, vamos executar um comando simples como 'tempo de atividade'Para todas as máquinas.

$ dsh -am -c uptime
Saída de amostra
172.16.25.125: 05:11:58 Up 40 dias, 51 min, 0 usuários, carregar média: 0.00, 0.01, 0.05 172.16.25.126: 05:11:47 até 13 dias, 38 min, 0 usuários, carregar média: 0.00, 0.01, 0.05

Então, o que esse comando fez?

Bem simples. Primeiro, nós corremos dsh e passou o “-a”Opção, que diz para enviar o“tempo de atividade"Comando para"TODOS"Das máquinas listadas em"/etc/dsh/máquinas.lista““.

Em seguida, especificamos o “-M”Opção, que diz para devolver o“nome da maquina" (Especificado em "/etc/dsh/máquinas.lista“) Junto com a saída do comando de tempo de atividade. (Muito útil para classificar ao executar um comando em várias máquinas.)

O "-c”Opção significa“comando a ser executado" nesse caso, "tempo de atividade““.

Dsh também pode ser configurado com grupos de máquinas no “/etc/dsh/grupos/”Arquivo, onde é um arquivo com uma lista de máquinas no mesmo formato que“/etc/dsh/máquinas.lista" arquivo. Ao correr dsh em um grupo, especifique o nome do grupo depois de "-g”Opção.

Para chapéu vermelho Sistemas baseados que você precisa para criar uma pasta chamada “grupos" em "/usr/local/etc/”Diretório. Naquilo "grupos”Diretório que você cria um arquivo chamado“conjunto““.

Por exemplo, execute o “c”Comando em todas as máquinas listadas no“conjunto”Arquivo do grupo“/etc/dsh/grupos/cluster" ou "/usr/local/etc/grupos/cluster““.

$ dsh -m -g cluster -c w

Dsh fornece muito mais flexibilidade, e este tutorial apenas arranha a superfície. Além de executar comandos, Dsh pode ser usado para transferir arquivos, instalar software, adicionar rotas e muito mais.

Para um Administrador de sistemas encarregado da responsabilidade de uma grande rede, é inestimável.