Я имею 1000x контейнеры Ubuntu 16, работающие в докере за стресс-тестированием часть программного обеспечения, которое мы тестируем.
Я могу ssh в каждое из этих полей по одному..., но я ищу способ автоматизировать командный пункт этого внутреннего ботнета. Существует ли инструмент для зеркального отражения командной строки? Как тип команда sudo shutdown -r now
или sudo service myService restart
и получите ответ от всех 1000x терминалы..., даже если это был просто код возврата для команды?
до сих пор я изучил:
PSSH обеспечивает параллельные версии OpenSSH и связанных инструментов. Включенный pssh, pscp, prsync, pnuke, и pslurp. Проект включает psshlib, который может использоваться в рамках пользовательских приложений. Исходный код записан в Python и может быть клонирован от:
клон мерзавца http://code.google.com/p/parallel-ssh/
PSSH поддерживается на Python 2.4 и больше (включая Python 3.1 и больше). Это первоначально писалось и сохранялось Brent N. Chun. Из-за его плотного графика, Brent передал обслуживание Andrew McNabb в октябре 2009.
Usage: pssh [OPTIONS] command [...]
Options:
--version show program's version number and exit
--help show this help message and exit
-h HOST_FILE, --hosts=HOST_FILE
hosts file (each line "[user@]host[:port]")
-H HOST_STRING, --host=HOST_STRING
additional host entries ("[user@]host[:port]")
-l USER, --user=USER username (OPTIONAL)
-p PAR, --par=PAR max number of parallel threads (OPTIONAL)
-o OUTDIR, --outdir=OUTDIR
output directory for stdout files (OPTIONAL)
-e ERRDIR, --errdir=ERRDIR
output directory for stderr files (OPTIONAL)
-t TIMEOUT, --timeout=TIMEOUT
timeout (secs) (0 = no timeout) per host (OPTIONAL)
-O OPTION, --option=OPTION
SSH option (OPTIONAL)
-v, --verbose turn on warning and diagnostic messages (OPTIONAL)
-A, --askpass Ask for a password (OPTIONAL)
-x ARGS, --extra-args=ARGS
Extra command-line arguments, with processing for
spaces, quotes, and backslashes
-X ARG, --extra-arg=ARG
Extra command-line argument
-i, --inline inline aggregated output and error for each server
--inline-stdout inline standard output for each server
-I, --send-input read from standard input and send as input to ssh
-P, --print print output as we get it
https://code.google.com/archive/p/parallel-ssh /
использование в качестве примера:
pssh -i -h hosts.txt echo "hello, world"