Gerenciando vários servidores Linux com ClusterSSH

se você é um administrador de Sistema Linux, é provável que você tenha mais de uma máquina pela qual você é responsável diariamente. Você pode até ter um banco de máquinas que você mantém que são semelhantes — uma fazenda de servidores Web, por exemplo. Se você tiver a necessidade de digitar o mesmo comando em várias máquinas ao mesmo tempo, você pode fazer login para cada um com SSH e fazê-lo serialmente, ou você pode economizar muito tempo e esforço e usar uma ferramenta como ClusterSSH.

ClusterSSH é uma embalagem Tk/Perl em torno de ferramentas padrão Linux como XTerm e SSH. Como tal, ele será executado em praticamente qualquer POSIX compatível com sistema operacional onde as bibliotecas existem — eu tenho que correr em Linux, Solaris e Mac OS X. Ele requer o Perl bibliotecas Tk (perl-tk no Debian ou Ubuntu) e X11::Protocol (libx11-protocol-perl no Debian ou Ubuntu), além do xterm e OpenSSH.

instalação

instalação ClusterSSH em um sistema Debian ou Ubuntu é trivial — um simples sudo apt-get install clusterssh irá instalá-lo e suas dependências. Ele também é empacotado para uso com Fedora, e é instalável através do sistema ports no FreeBSD. Há também uma versão MacPorts para uso com Mac OS X, se você usar uma máquina Apple. É claro que também pode ser compilado a partir da fonte.

a configuração

ClusterSSH pode ser configurada através do seu ficheiro de configuração global – /etc/clusters, ou através de um ficheiro no directório do utilizador chamado .csshrc. Eu tendem a favorecer a configuração de nível de usuário como que permite que várias pessoas no mesmo sistema para configurar o seu cliente ClusterSSH como eles escolhem. A configuração é simples em ambos os casos, pois o formato do arquivo é o mesmo. ClusterSSH define um “cluster” como um grupo de máquinas que você gostaria de controlar através de uma interface. Com isso em mente, você enumera seus aglomerados no topo do arquivo em um bloco de “aglomerados”, e então você descreve cada aglomerado em uma seção separada abaixo.Por exemplo, digamos que tenho dois grupos, cada um composto por duas máquinas. “Cluster1” tem as máquinas “Test1” e “Test2” nele, e “Cluster2” tem as máquinas “Test3” e “Test4” nele. O ficheiro de controlo ~.csshrc (ou /etc/clusters) seria semelhante a este:

clusters = cluster1 cluster2

cluster1 = test1 test2
cluster2 = test3 test4

pode também fazer meta-aglomerados que se referem a aglomerados. Se você quisesse fazer um conjunto chamado “Todos” que abrangia todas as máquinas, você poderia defini-lo de duas maneiras. Primeiro, você pode simplesmente criar um cluster de que realizou todas as máquinas, como o seguinte:

clusters = cluster1 cluster2 all

cluster1 = teste1 teste2
cluster2 = test3 test4
all = test1 test2 test3 test4

no Entanto, o meu método preferido é utilizar uma meta-cluster que engloba os outros clusters:

clusters = cluster1 cluster2 all

cluster1 = teste1 teste2
cluster2 = test3 test4
all = cluster1 cluster2

chamando o “todos” cluster como contendo cluster1 e cluster2, se qualquer um desses clusters de mudar, a mudança é capturado automaticamente, assim você não precisa atualizar o “todos” de definição. Isto vai poupar-lhe tempo e dor de cabeça se o seu .o arquivo csshrc sempre cresce em tamanho.

usando ClusterSSH

usando ClusterSSH é semelhante ao lançamento SSH por si só. A simples execução de cssh -l <username> <clustername> irá lançar o ClusterSSH e ligar-lhe-á como o utilizador desejado nesse conjunto. Na figura abaixo, você pode ver que eu entrei em “cluster1” como eu mesmo. A pequena janela chamada “CSSH” é a janela de consola do Cluster SSH. Tudo o que eu digitar naquela pequena janela é ecoado para todas as máquinas no aglomerado — neste caso, máquinas “test1” e “test2”. Em um aperto, Você também pode entrar em máquinas que não estão em seu .csshrc file, simplesmente executando cssh -l <username> <machinename1> <machinename2> <machinename3>.

se eu quiser enviar algo para um dos terminais, eu posso simplesmente mudar de foco clicando no XTerm desejado, e apenas digitar essa janela como eu normalmente faria. ClusterSSH tem alguns itens de menu que realmente ajudam ao lidar com uma mistura de máquinas. De acordo com a figura abaixo, no menu “Hosts” do console ClusterSSH há várias opções que vêm a calhar.

“janelas Retteis” faz apenas isso se você tiver dimensionado manualmente ou movido algo. “Adicionar host(s) ou Cluster(s)” é ótimo se você quiser adicionar outro conjunto de máquinas ou outro cluster para a sessão de clusterssh em execução. Finalmente, você verá cada host listado na parte inferior do menu” Hosts”. Se assinalar ou desligar as opções ao lado de cada máquina, poderá seleccionar as máquinas para as quais a consola ClusterSSH irá fazer eco. Isto é útil se você quiser excluir um host ou dois por uma razão única ou particular. A opção do menu final que é bom ter está no menu “Enviar”, chamado”Hostname”. Isto simplesmente ecoa o nome de cada máquina para a linha de comando, o que pode ser útil se você estiver construindo algo específico da máquina em todo o seu conjunto.

Advertências com ClusterSSH

Como muitos UNIX ferramentas, ClusterSSH tem o potencial para ir horrivelmente errado se você não tiver muito cuidado com o seu uso. Já vi erros do ClusterSSH destruírem um conjunto inteiro de servidores Web simplesmente propagando um erro tipográfico numa configuração Apache. Ter acesso a várias máquinas ao mesmo tempo, possivelmente como um usuário privilegiado, significa que os erros vêm a um grande custo. Cuida-te e verifica o que estás a fazer antes de carregares na tecla Enter.

Conclusion

ClusterSSH isn’t a replacement for having a configuration management system or any of the other best practices when managing a number of machines. No entanto, se você precisa fazer algo em uma pitada fora de seu conjunto de ferramentas ou processo habitual, ou se você está fazendo um trabalho protótipo, ClusterSSH é indispensável. Ele pode economizar muito tempo ao fazer tarefas que precisam ser feitas em mais de uma máquina, mas como qualquer ferramenta de energia, ele pode causar um monte de danos se usado de forma aleatória.

You might also like

Deixe uma resposta

O seu endereço de email não será publicado.