clusterssh

2 minutes read in Linux

Встала задача администрирования нескольких однотипных серверов: обновление, мониторинг и т.д.

Заходить на каждый и вызывать скрипт – не вариант, поэтому был произведен поиск соответствующей утилиты.

clusterssh

В простейшем случае, после установки можно подключится к нескольким серверам по ssh(поддерживаются и другие протоколы) с помощью команды:

cssh [email protected] [email protected] [email protected]

После вызова данной команды откроется четыре окна: 3 окна xterm, и окно cssh.

Можно вводить команды как во все окна xterm одновременно – вводя в окно cssh, так и каждое окно xterm по отдельности – например если пароли от sudo разные на каждом хосте.

Чтобы не вводить каждый раз данную команду её можно обернуть в скрипт, добавить алиас или создать конфиг clusterssh.

Для создания tag’ов (tag представляет набор серверов), нужно создать файл:

~/.clusterssh/clusters

В данном файле можно создать tag либо набор tag’ов:

# My favorite servers
fav [email protected] [email protected] [email protected]

И в последующем пользоваться данным tag:

cssh fav

Если у вас есть несколько tag’ов и вы хотите подключиться одновременно ко всем, то просто перечислите их:

cssh tag1 tag2 tag3

Второй вариант – запуск сессий ssh в цикле, в дочернем процессе:

#!/bin/bash

servers=$1
commands=$2

for server in $servers; do
  echo "ssh $server $commands"
  gnome-terminal -e "ssh $server $commands" &
done

Назовем данный скрипт clustershell.sh

Теперь используем его:

./clustershell.sh "[email protected] [email protected] [email protected]" ./script-to-run-on-servers.sh

Итого:


← Утопический Единорог – Оригами Digital Ocean – 10$ каждому! →