Usando DSH (shell distribuído) para executar comandos Linux em várias máquinas
- 1866
- 94
- Howard Fritsch
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 servidoresPara 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.
- 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.
- « 10 e -books linux gratuitos úteis para iniciantes e administradores
- Série RHCE Implementando HTTPS através do TLS usando o NSS (Network Security Service) para Apache - Parte 8 »