В настоящее время мы пытаемся найти решение, позволяющее лучше автоматизировать обновления Windows на наших машинах IIS. У нас есть инфраструктура, в которой в любое время суток совершаются тысячи транзакций; Лучшее окно, которое мы можем предоставить, - это окно с меньшим количеством этих транзакций, но отключение IIS / выключение компьютера во время их выполнения вызывает межведомственные инциденты, которых мы хотели бы избежать.
Таким образом, эти транзакции должны завершиться до перезагрузки компьютера для приема обновлений. В настоящее время мы используем балансировщик нагрузки F5, который отслеживает файл с контрольным значением, которое мы изменяем вручную, чтобы разрешить обновления; если сервера больше нет в таблице балансировки нагрузки, текущие транзакции могут быть завершены, а остальные новые будут отправлены на другие серверы.
Я пытаюсь найти способ, позволяющий нам удалить наш сервер из подсистемы балансировки нагрузки, не выключая его или не отключая IIS (предоставляя льготный период для ожидающих транзакций при остановке новых). В настоящее время мы используем SCOM, к чьим элементам управления у меня нет доступа, и команда сообщила мне, что невозможно указать сценарий или триггер перед обновлением нашей текущей инфраструктуры.
Моя идея состоит в том, что мы могли бы настроить сценарий запланированной задачи для запуска по идентификатору события, который готов к установке Центра обновления Windows, чтобы вывести наш сервер из режима балансировки нагрузки, а затем еще один, когда обновление будет завершено, чтобы вернуть его.
Однако, хотя я знаю, что запланированные задачи работают с событием с идентификатором 19 (успешное обновление), я не уверен, можно ли указать задачу, которая должна выполняться до фактического начала обновления. Идентификатор события, на который я сейчас смотрю, - 43, установка началась, но я сомневаюсь, что во время этого могут выполняться другие задачи (например, остановка и запуск служб, изменение файлов и т. Д.).
Есть ли у кого-нибудь опыт написания запланированных задач или сценариев для этой конкретной цепочки событий непосредственно до и сразу после применения обновления?
Хороший вопрос!
Как вы планируете исправлять серверы IIS? Какой инструмент ты используешь? WSUS? SCCM? BigFix? Альтирис? или любой другой?
СПОСОБ SCOM - возможность запуска сценария по определенному идентификатору события. SCOM - Запуск сценария в ответ на обнаружение события
Вам нужно будет определить служебное окно, чтобы автоматизировать процесс.
Допустим, вы запланировали исправление серверов IIS с использованием окна обслуживания на 4 часа (с 18:00 до 22:00), один сервер в один день.
Программирование балансировщика нагрузки F5
Предоставьте льготный период для завершения транзакций. Здесь вы можете использовать некоторые специфические скрипты IIS для мониторинга сессий.
Настройте сервер для управления исправлениями и отслеживайте загрузку обновлений, установку и идентификатор события завершения
Добавьте сервер обратно в балансировщик нагрузки F5
Общий инструмент для использования: Windows Powershell (поскольку мы говорим о IIS, Powershell - лучший выбор)
С помощью Powershell:
Запустите сценарий PHP через Windows Powershell
Мониторинг IIS и базы данных (при необходимости)
Он может отслеживать идентификатор события для установки обновления и, наконец, перезагружать сервер.
Вы можете запланировать задание с помощью Windows Powershell.
Надеюсь это поможет. Это всего лишь пример.