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

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

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

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

Сейчас у меня забиты сессии в mremoteng и подключение с начальной авторизацией так сказать автоматизировано, но если нужно сделать вот это всё массово, это кликанье часами.
Читал что может в этом помочь fabric в питоне, но точно не знаю.
Чем можно это сделать?
  • Вопрос задан
  • 794 просмотра
Решения вопроса 1
@iddqda
network engineer, netdevops
ансибл хорошо подходит для задач конфигурирования серверов когда код задачи загружается на клиента и там испольняется.
для тупых задач типа зайти по ssh и выполнить пару команд подходит плохо
для этого он переусложнен громоздок и неповоротлив
а еще славится обратной несовместимостью
каждый мажорный релиз скрипты придется переписывать

я бы для такой задачи использовал scrapli + nornir
вот только оба два с windows не работают
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
nikonor
@nikonor
Программист go, perl
а в чем проблема с ansible? Вроде же он ровно для этого и создан?
Ответ написан
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Expect отлично умеет трогать подобные глупые железки, про которые написано у вас в пп. 1-3. Вполне можно всё это засковородить в рамках какого-нибудь Ансибла и т. п.
Ответ написан
@unseriously
Можно с помощью скрипта на баше
На винде есть шикарная программа MobaXterm, в бесплатной версии у нее есть ограничения на количество сессий, платная версия кусается ценой, но, возможно, она вам чем-то поможет.
Ответ написан
@vitaly_il1
DevOps Consulting
Посмотрите на https://gist.github.com/mbbx6spp/c16b5438270be6096..., если лень изучать Ansible
Ответ написан
Комментировать
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Раз есть тег Windows - то скрипт на Powershell. Он умеет ssh из коробки и в foreach можно перебрать скписок машин.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы