Connection Manager
Aleksander Gorohovski
angel на feht.dgtu.donetsk.ua
Чт Май 5 08:53:44 UTC 2011
Оч.интересная разработка.
Большое спасибо.
On Wed, 04 May 2011 18:23:20 +0300, Alex Emergy wrote:
> Предлагаю вашему вниманию скрипт, удобную менюшку, для удаленных сессий
> по SSH и Telnet
>
> Возможности:
> - Автологин SSH и Telnet сессий
> - Весьма не сложный в настройке конфиг
> - Многоуровневое меню (поддерживаются суб-меню любой глубины)
> - К любому суб-меню можно "приклеить ярлык" и обращаться на прямую к
> этому меню из командной строки
> - Одна железяка может иметь несколько ip адресов.
> - Описания или заметки к каждой железке отображаются в меню
> - Open Source
>
> Зависимости:
> libjson-xs-perl, libexpect-perl
>
> Установка:
> sudo apt-get install libjson-xs-perl libexpect-perl
> копируем cm к примеру в /usr/local/bin
> и даём бит исполняемый:
> chmod +x /usr/local/bin/cm
> создаем свой конфиг в /home/username/.cm
>
> Использование:
> cm [arg]
>
> Немного предыстории:
> Мне по долгу службы, приходиться часто лазить на удалённые железяки и
> серверы по 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, то подключаться будет по телнету
>
> конфиг должен лежать в домашней директории:
> ~/.cm
>
> Структура конфига очень напоминает хэши и массивы perl.
>
>
> Примеры конфига:
>
> 1)--------------------------------------------------
> [{
> "name": "server1",
> "ip": "192.168.11.9"
> },
> {
> "name": "svn.corp",
> "description": "SVN-Server"
> },
> {
> "name": "Активное оборудование"
> "arg": "a",
> "menu": [{
> "name": "Коммутаторы",
> "menu": [{
> "name": "192.168.11.2",
> "login": "admin",
> "password": "123456",
> "type": "telnet"
> },
> {
> "name": "192.168.11.3,
> "login": "admin",
> "password": "123456",
> "type": "telnet"
> }]
> },
> {
> "name": "Маршрутизаторы",
> "menu": [{
> "name": "main",
> "ip": "192.168.11.1"
> }]
> }]
> }]
>
>
> 2)------------------------------------------------------------------------------------------
> [{
> "name": "Servers on VM",
> "arg": "vm",
> "menu": [{
> "name": "SVN",
> "ip": [
> "192.168.4.9",
> "98.33.74.2"
> ],
> "login": "user44"
> },
> {
> "name": "kvm.pika.corp",
> "login": "root",
> "description": "Hypervisor"
> },
> {
> "name": "ngenix.r55.ru"
> }]
> },
> {
> "name": "Commutators & Routers",
> "arg": "c",
> "menu": [{
> "name": "192.168.4.1",
> "description": "Users GW",
> "login": "admin",
> "password": "1234secret"
> },
> {
> "name": "192.168.1.10",
> "login": "admin",
> "password": "1234secret",
> "type": "telnet"
> },
> {
> "name": "E650-M9-AGG-10",
> "ip": "10.10.3.9",
> "description": [
> "MSK-IX (4)",
> "DATA-IX (2)"
> ],
> "login": "support",
> "password": "342r32r2ddd"
> }]
> }]
>
>
>
>
>
Подробная информация о списке рассылки ubuntu-ru