Спасибо! Уже сам разобрался, но спасибо :)
Как автоматизировать: куча ВМ, где нужно запускать скрипт со своими параметрами
-
Стоит задача:
- есть достаточно много виртуальных машин с windows на proxmox
- из-за того, что их много, а ресурсов сервера мало - они запускаются по требованию пользователя и затем уходят в суспенд через некоторое время- т.е. постоянно не работают
- на этих ВМ могу запускать консольные приложения через ssh
- нужно на каждой из них запускать скрипт 2 раза в сутки
- запуск скрипта на каждой ВМ должен быть со своими логинами-паролями
- с логинами и паролями ошибиться нельзя - тут нужен какой-то железный механизм, чтобы скрипт и автоматом и вручную запускался с верными лог и паролем. Допустить хотя бы одну ошибку - нельзя.
- результаты работы скриптов(успех/неудача/шаг на котором произошла ошибка) нужно куда-то писать, чтобы пользователь раз в день мог смотреть, на каких ВМ выполнилось, на каких нет и принимал ручные действия
Сейчас варианты реализации видится примерно такими:
Вариант 1- есть система-оркестратор, которая 2 раза в день будет стартовать процесс:
- проходится по списку ВМ, если ВМ не запущена или в суспенде - запускает
- подключается по ssh и выполняет скрипт, параметры скрипта хранятся на ВМ
- скрипт сам отдает результаты на http-сервис системы оркестратора
- система оркестратор по завершению шлет пользователю отчет с ошибками
- пользователь принимает меры
Вариант 2:
то же самое, но все управляется через http-сервис системы оркестратора, оттуда же скрипт получает лог/пароль и туда же пишет результат
Вопросы:
- Предложите свой вариант решения поставленной задачи, если видите способ оптимальнее
- Как системе оркестратору запустить скрипт на ВМ из варианта 2 через http-запрос?
- Учитывая, что ошибиться в лог/пароле нельзя даже один раз, то хочется все таки хранить его где-то в файле внутри проекта, мб даже в самом проекте. Нужно сделать так, чтобы и при автоматическом запуске и при запуске на отладку вручную из BAS брался только верный логин/пароль из одного места.
Хочется уйти от настройки ресурсов в BAS через интерфейс - Допустим я выбрал вариант 2. Как внутри скрипта установить переменные или ресурсы в считанные мною от системы оркестратора? Нужен пример кода, так как блоками, я так понял не получится.
- Допустим я выбрал вариант 2. Как мне хранить в скрипте название ВМ, чтобы по этому названию получить логин/пароль от системы оркестратора? Вариант компилировать каждый скрипт - не вариант. Вариант править actual.xml тоже мне кажется опасным, потому что можно запутаться в проектах и запустить не с тем логином/паролем
- Как правильно обрабатывать ошибки, чтобы можно их было отправить в систему оркестратор? Нужна инфа успех/неудача/шаг на котором произошла ошибка
- Нормально ли эти варианты отработают через RemoteExecuteScriptSilent.exe?
Сорян за длинный вопрос.
PS: Прочитал форум, знаю, что параметры в скрипт кроме как редактированием actual.xml не передать...
-
@a-perminov У БАС есть библиотеки для запуска скриптов из nodejs/python/c# наверное проще посредством них сделать какие-то апи интерфейсы для вашей задачи
-
Прочитал твой топик поверхностно, лично я всегда пользуюсь для настройки серверов:
- Для управления состояниями виртуальных машин - https://www.terraform.io/
- Для настройки VM и запуска скриптов https://www.ansible.com/
- Для запуска Windows приложений(жмакать на кнопки в самой программе для ее настройки) выбор тоже есть. Сам я писал кастомные скрипты для этого. Пример тут
Вышеописанные инструменты дадут из коробки многое из того, что описано в топике.
Можно пробовать посмотреть на https://www.uipath.com/product/automation-suite или подобное, сам не пользовался.
P.S.
Могу поделиться опытом, бесплатно. Кодить я не буду за тебя, но рассказать как делал бы я - без проблем. Добавил репутации, чтобы можно было писать в личку.
Пиши в личку с tg.