Connection Manager (Консольне меню сетевых железяк с возможностью автологина)

Модератор: /dev/random

Аватара пользователя
BSDevil
Сообщения: 112
ОС: MAC OS X

Connection Manager

Сообщение BSDevil »

Предлагаю вашему вниманию скрипт, удобную менюшку, для удаленных сессий по SSH и Telnet

Возможности:
- Автологин SSH и Telnet сессий
- Весьма не сложный в настройке конфиг
- Многоуровневое меню (поддерживаются суб-меню любой глубины)
- К любому суб-меню можно "приклеить ярлык" и обращаться на прямую к этому меню из командной строки
- Одна железяка может иметь несколько ip адресов.
- Описания или заметки к каждой железке отображаются в меню
- Open Source
- Запуск своих команд для нескольких IP адресов (к примеру можно выполнить
apt-get update && apt-get upgrade && reboot на наскольких машинах)


Зависимости:
libjson-xs-perl, libexpect-perl


Пример установки для Ubuntu/Debian

Код: Выделить всё

sudo aptitude install git libjson-xs-perl libexpect-perl
cd ~/.local/share/
git clone git://github.com/emergy/Connection-Manager.git
sudo ln -s ~/.local/share/Connection-Manager/connection-manager.pl /usr/local/bin/cm

И правим конфиг:
cp ~/.local/share/Connection-Manager/config.json.example ~/.local/share/Connection-Manager/config.json
vi ~/.local/share/Connection-Manager/config.json


Немного предыстории:
Мне по долгу службы, приходиться часто лазить на удалённые железяки и серверы по ssh.
Так как их приличное количество и запомнить все IP и хостнеймы просто не возможно, было
решено написать простейшую менюшку на shell (скрипт авторизации написал ещё давно).
Но копаться каждый раз в теле скрипта, для того чтобы добавить новую железяку надоело.
Начали появляться железяки с уникальным логином/паролем (которые тоже надо помнить).
В общем было решено написать нормальную менюшку на Perl. Где можно указать логин/пароль
на конкретную железяку, делать суб-меню любой сложности. В общем чтобы было удобно.
Под винду полно подобного софта - под линукс ничего подобного не видел.

Конфиг:
Конфиг в формате JSON. С первого взгляда может не понятен, но на самом деле довольно прост.
Подробности можно узнать тут: http://ru.wikipedia.org/wiki/JSON

name - имя пункта меню
menu - при наличии этой опции означает, что это суб-меню
arg - передавая аргумент указанный здесь из командной строки, можно сразу перейти на это суб-меню
ip - ip-адрес. Если этот пункт отсутствует, то пытается подключиться по name. При наличии нескольких ip адресов, появляется меню с выбором
login - логин от железяки. Может использоваться без password для SSH сессий
password - пароль от железяки. Полезно для коммутаторов, маршрутизаторов
description - описание, заметка или что-то вроде того
type - если указан telnet, то подключаться будет по телнету
exec - выполняет указанную команду (type должен быть exec)

Все подробности в примере конфига...

Последняя версия всегда тут:
https://github.com/emergy/Connection-Manager
Изображение
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Connection Manager

Сообщение sash-kan »

BSDevil писал(а):
27.05.2011 18:23
под линукс ничего подобного не видел
очень неудобно вас расстраивать, но, вероятно, надо было смотреть для gnu/linux.
навскидку:
clusterssh - administer multiple ssh or rsh shells simultaneously
dish - the diligence/distributed shell for parallel sysadmin
dsh - dancer's shell, or distributed shell
mssh - tool to administrate multiple servers at once
mussh - MUltihost SSH Wrapper
pssh - Parallel versions of SSH-based tools
taktuk - efficient, large scale, parallel remote execution of commands

ну и из совсем недавнего: [gnu] parallel 20115022 "Pakistan"
в частности: http://www.gnu.org/software/parallel/man.html , поиск по слову ssh.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
BSDevil
Сообщения: 112
ОС: MAC OS X

Re: Connection Manager

Сообщение BSDevil »

Это все не то. Нужен был автологин. На циски скажем... Мне уже показывали что похожие есть (в рассылке убунту), но все как-то не то.
Изображение
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Connection Manager

Сообщение sash-kan »

BSDevil писал(а):
28.05.2011 17:55
Нужен был автологин. На циски скажем
у cisco/ios какая-то особая реализация ssh-протокола?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
BSDevil
Сообщения: 112
ОС: MAC OS X

Re: Connection Manager

Сообщение BSDevil »

Туда нельзя закинуть ssh ключик
Изображение
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Connection Manager

Сообщение sash-kan »

BSDevil писал(а):
08.06.2011 17:56
Туда нельзя закинуть ssh ключик
вы чуть не убили мою веру в человечество.
разработчики cisco/ios всё-таки осилили эту чрезвычайно сложную задачу и меня теперь переполняет чувство гордости, что я живу на одной планете с такими гениальными программистами.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
BSDevil
Сообщения: 112
ОС: MAC OS X

Re: Connection Manager

Сообщение BSDevil »

Ну нет скажем доступа у меня на то чтоб ключик на киску закинуть. Или это какая-то железяка которая не поддерживает. В любом случае, кому это надо, тот найдёт и возможно скажет спасибо. Я для себя не нашёл подходящего варианта сделать нормальное, разбитое по категориям меню c автологином на любую железку. Поэтому написал скрипт. Результат выложил. Может пригодиться не только мне. Не понимаю, что вы пытаетесь доказать?
Изображение
Спасибо сказали: