Ищем пакет, который псевдоним команд на нескольких удаленных хостах, используя ssh

Я хотел бы найти программу, которая поддерживает список команд, которые могут быть псевдонимы для разных хостов. например, у нас есть сервер базы данных и четыре веб-сервера. общая задача состоит в том, чтобы войти на сервер администратора и перезапустить MySQL, используя

# ssh dbserver "service mysql restart"

затем мы перезапускаем каждый из веб-серверов, запустив

# ssh webserver1 "service apache2 restart"
# ssh webserver2 "service apache2 restart"
# ssh webserver3 "service apache2 restart"
# ssh webserver4 "service apache2 restart"

Я хотел бы иметь пакет, который отслеживает эти команды, и я мог бы запустить их так:

# blah dbserver,webserver1-4 "restartServices"

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

3 ответа

Вы можете написать свой собственный скрипт bash для этого.

#!/bin/bash
ssh server 1 "service apache2 restart"
ssh server 2 "service apache2 restart"
ssh server 3 "service apache2 restart" etc....

Тогда просто запустите скрипт.

Это звучит для меня как то, что вы хотите, это rundeck. Он поставляется с приятным веб-интерфейсом, но также работает и в командной строке.

Это можно сделать несколькими способами.

Возможно, самый простой способ - использовать pssh (параллельный ssh).

Если ваши потребности более сложны, вы можете использовать такие фреймворки, как Fabric или MCollective.

Другие вопросы по тегам