На сервере windows (2016) есть сценарий PowerShell, который запускает базовый c тест сетевого подключения, такой как командлеты ICMP ping Test-Connection / Test-NetConnection для пары windows серверов ~ 3k. Результаты этих команд передаются в виде событий сборщику HTTP-событий Splunk. Целевые серверы windows расположены в розничных магазинах по всей стране. Данные о событиях, которые передаются в Splunk, содержат такие детали, как имя хоста, статус (онлайн / офлайн), номер центра (в основном идентификатор розничного магазина). Сценарий PowerShell запускается каждые десять минут. Однако выполнение одного прогона занимает много времени. Когда открываются новые магазины, это только задерживает выполнение скрипта. Теперь это займет ~ 20 мин. пинговать 3к серверов.
Можно ли использовать Ansible для запуска сценария PowerShell путем передачи идентификатора магазина / центра в качестве параметра? Из-за ограничений безопасности серверы в магазине не могут получить запрос ICMP ping / echo с любого компьютера. Сервер windows, на котором размещен сценарий PowerShell, является единственным компьютером, который может успешно запускать команды проверки связи ICMP с сервером. С ansible, вероятно, мы думаем, что удаленный сценарий PowerShell может быть запущен в for l oop (из всех хранилищ) как задача asyn c, возможно.
Сценарий PowerShell может запустить быстрый тест доступности сервера для магазина, передать результат в потоковом режиме и затем выйти, что более эффективно, чем запуск в течение почти 25 минут. Единственная проблема: ansible будет устанавливать несколько подключений к удаленной службе WinRM на одном хосте windows. У хоста 16 ГБ ОЗУ.
Это хороший подход?