Ищем пакет, который псевдоним команд на нескольких удаленных хостах, используя 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.