Чем автоматизировать массовое подключение по ssh?



@altshifter

Надоело заниматься мартышкиным трудом, и хотелось бы уделять время в работе более интересным задачам. Хочется все автоматизировать и наслаждаться. Я понимаю, что знание инструментов и всяческих ЯП поможет во всем, но хочется учить то, что реально поможет тебе в выполнении работы. Это вопрос не для поиска конкретного ответа (что конечно тоже было бы круто и здорово), а помощи пути, чем можно это сделать и куда копать.

Периодически необходимо подключиться к ~300+ железкам по ssh и ввести одинаковую для всех команду, но есть нюансы обход которых сложно гуглятся (особенно если не знаешь основных инструментов типа ansible и т.д.).

  • 1 — на железках собственный шелл, нужно подавать только определенные команды
  • 2 — команды подавать нужно с привилегированного режима, например конкретно в этом случае ввести команду «enableup» и ввести пароль администратора для работы в привилегированном режиме
  • 3 — подключение по паролю, никаких ключей((
  • 4 — желательно работа этого всего на windows

Сейчас у меня забиты сессии в mremoteng и подключение с начальной авторизацией так сказать автоматизировано, но если нужно сделать вот это всё массово, это кликанье часами.
Читал что может в этом помочь fabric в питоне, но точно не знаю.
Чем можно это сделать?


Решения вопроса 1



@iddqda

ансибл хорошо подходит для задач конфигурирования серверов когда код задачи загружается на клиента и там испольняется.
для тупых задач типа зайти по ssh и выполнить пару команд подходит плохо
для этого он переусложнен громоздок и неповоротлив
а еще славится обратной несовместимостью
каждый мажорный релиз скрипты придется переписывать

я бы для такой задачи использовал scrapli + nornir
вот только оба два с windows не работают



1

комментарий


Ответы на вопрос 5



@nikonor

а в чем проблема с ansible? Вроде же он ровно для этого и создан?



@ky0

Expect отлично умеет трогать подобные глупые железки, про которые написано у вас в пп. 1-3. Вполне можно всё это засковородить в рамках какого-нибудь Ансибла и т. п.



@unseriously

Можно с помощью скрипта на баше
На винде есть шикарная программа MobaXterm, в бесплатной версии у нее есть ограничения на количество сессий, платная версия кусается ценой, но, возможно, она вам чем-то поможет.



@vitaly_il1

Посмотрите на https://gist.github.com/mbbx6spp/c16b5438270be6096…, если лень изучать Ansible



@SignFinder

Раз есть тег Windows — то скрипт на Powershell. Он умеет ssh из коробки и в foreach можно перебрать скписок машин.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *