Приручаем WSUS при помощи Ansible и не только

Ну что ж, вот и настала пора подружить Windows-обновления с миром Open Source. В этой статье разнообразим быт интеграцией Ansible со всеми возможными источниками обновлений Windows-машин. Хотя возможности системы значительно шире простой раскатки обновлений на серверы и рабочие станции, но ведь надо с чего-то начинать.

Заодно избавимся от досадных неудобств WSUS, если вы предпочитаете «старую школу».

За что мы не любим WSUS

Про настройку Windows Server Update Services рассказывать я не буду, благо она тривиальна. Сосредоточусь на минусах.


Интерфейс WSUS почти не менялся на протяжении всей истории.

Невозможность установки по требованию. Действительно, для штатной работы WSUS подходит неплохо — обновления спокойно себе настраиваются и ставятся по локальной сети при выключении компьютеров. Но если нужно срочно установить патчи безопасности, то придется выкручиваться скриптами и решениями для запуска этих самых скриптов. В этом может помочь наш материал «1000++ способ запуска команд на удаленном компьютере».

Отсутствие штатного способа установки обновлений стороннего ПО. Если есть сервер обновлений, то выглядит разумным использовать его не только для обновлений программ MS, но для других решений. Например, в не к ночи упомянутом Adobe Flash Player уязвимости находятся с завидной регулярностью, да и радовать пользователей новыми возможностями FireFox тоже хотелось бы. Для того чтобы наладить установку обновлений через WSUS, приходится использовать сторонние решения вроде WSUS Package Publisher. Посмотреть примеры настройки можно в статье «Установка любого программного обеспечения средствами WSUS — 2».

Использование встроенной БД Windows. При стандартной установке WSUS использует WID — Windows Internal Database. По сути это маленький встроенный SQL Server с базой данных. В случае каких-то неполадок или конфликтов — к примеру, если у вас на одном сервере живет Remote Desktop Connection Broker и WSUS, — приходится чинить эту базу, настраивать права доступа и всячески развлекаться. Да и резервное копирование бы не помешало. По счастью, WSUS может использовать и классический SQL. Для переноса БД WSUS можно воспользоваться инструкцией Migrating the WSUS Database from WID to SQL от Microsoft.

Необходимость обслуживания и неочевидная настройка сбойных клиентов. Как это бывает с продуктами от Microsoft, рано или поздно WSUS начинает тормозить: клиенты долго не могут к нему подцепиться и скачать обновления. Сборник советов и оптимизаций есть в статье «Ускоряем работу WSUS» и в комментариях к ней.

Конечно, с этими минусами можно жить, но можно и облегчить себе жизнь другими инструментами, используя их как в паре с WSUS, так и без него.

Устанавливаем обновления при помощи Ansible

Практически любая система управления конфигурациями может облегчить работу с обновлениями. Разберем пример на базе Ansible для установки обновлений по требованию.

Стоит отметить, что помимо решения задачи, это будет неплохое подспорье для ознакомления с принципами работы подобных систем. Если, конечно, вы еще не развлекались установкой Streisand, особенно, когда что-то в процессе идет не так. А если вы уже используете Ansible или другие модные решения, то запросто сможете и обновления устанавливать. С азами Ansible я рекомендую ознакомиться в статье «Пособие по Ansible», а ниже — пошаговая инструкция по работе с обновлениями.

Для начала подготовим сервер Ansible. Подойдет практически любой GNU\Linux дистрибутив, но примеры команд я буду приводить для Ubuntu Server (так исторически сложилось).

Для начала установим пакетный менеджер для приложений на Python:

Затем нам понадобится установить пакет pywinrm для подключения к системам Windows и непосредственно систему Ansible:

Проверить установку можно командой ansible —version.


Проверка установки.

Теперь нужно разрешить подключение к Windows по WinRM. Для этого есть уже готовый скрипт ConfigureRemotingForAnsible.ps1, доступный на GitHub. Ну, а как запускать скрипты на удаленных машинах вы уже знаете.

Проверить подключение к Windows можно командой:


Проверка подключения успешна.

Теперь можно заняться созданием playbook. Нам облегчит жизнь тот факт, что разработчики Ansible уже подумали за нас и сделали модуль win_updates, как раз для решения таких задач.

Любой playbook является файлом в формате yml и представляет из себя набор директив — у каждого модуля они свои. Модуль winupdate позволяет использовать следующие директивы (жирным выделены значения по умолчанию):

Название Значение Описание
category_names Application
Connectors
CriticalUpdates
DefinitionUpdates
DeveloperKits
FeaturePacks
Guidance
SecurityUpdates
ServicePacks
Tools
UpdateRollups
Updates
Категория обновлений.
whitelist Номер обновления или шаблон имени. Непосредственно номер устанавливаемых обновлений вида KB01234 или шаблон имени в виде регулярного выражения PowerShell.
blacklist Номер обновления или шаблон имени. Непосредственно номер обновлений, которые не нужно устанавливать, вида KB01234 или шаблон имени в виде регулярного выражения PowerShell.
reboot yes
no
Требуется ли перезагрузка после обновления.
reboot_timeout секунды, 1200 Сколько времени ждать машину после перезагрузки.
state installed
searched
Устанавливать ли обновления, или только искать.
log_path путь к файлу Журнал установки, при этом папка должна существовать.

Таким образом, для установки определенных обновлений подойдет следующий playbook:

А если надо просто посчитать, сколько обновлений не хватает, playbook будет таким:

Для установки всех доступных обновлений с последующей перезагрузкой будет подобный playbook:

Напомню, что для работы со списком серверов понадобится файл инвентаризации. Например, такой:

Кроме этого:  Особенности ремонта блока цилиндров УАЗ 3303

И теперь для установки обновлений только на контроллеры домена можно использовать playbook:

Команда, которая проделает все эти операции, будет такой:

Внимательный читатель может спросить про источник скачиваемых обновлений. Источник будет тот, что настроен на компьютере: будь то Windows Update в интернете или локальный WSUS. Даже если до настройки WSUS руки не дошли, можно дать команду на установку нужных срочных апдейтов, особенно если детальки Lego под ноги уже высыпались.

Остается добавить, что не обязательно использовать именно Ansible. Например, для системы управления конфигурациями Chef можно использовать Cookbook Wsus Client или более навороченный boxstarter. Аналогичные модули существуют и для Puppet. В общем-то практически любая система управления конфигурациями может что-то подобное, в том числе и MS SCCM.

Напоследок приведу еще несколько заинтересовавших меня инструментов.

Прочие системы и решения

WSUS offline. Программа, позволяющая скачать необходимые обновления одним пакетом, при необходимости можно запаковать в ISO. Также можно положить пакет в сетевую папку и устанавливать обновления скриптами, без развертывания полноценного WSUS.

Patch Management от Comodo. Система установки обновлений для Windows и другого ПО. В отличие от других решений — бесплатна.


Интерфейс Comodo Patch Management.

Opsi. Бесплатная, интересная система, поддерживающая установку не только обновлений, но и операционных систем, заодно с инвентаризацией.

BatchPatch. Единственная из платных систем, попавшая в список. Позволяет устанавливать ПО, обновлять его, как и Windows, и многое другое. Отличается олдскульным дизайном, а также стоимостью не за количество обслуживаемых хостов, а за пользователей программы, т.е администраторов. Пожалуй, это одно из немногочисленных решений, позиционирующих себя как аналог WSUS. Цена начинается от $400.


Интерфейс BatchPatch.

В комментариях добавляйте свои любимые инструменты для работы с обновлениями и не только.

Источник

Настройка компьютера на обновление через WSUS.

Windows Server Update Services (WSUS) — сервер обновлений ОС и продуктов Microsoft. Программа бесплатно может быть скачана с сайта Microsoft и установлена на серверную ОС семейства Windows Server. Сервер обновлений синхронизируется с сайтом Microsoft, скачивая обновления, которые могут быть распространены внутри локальной сети. Это экономит внешний трафик компании и позволяет быстрее устанавливать исправления ошибок и уязвимостей в операционных системах Windows на рабочих местах, а также позволяет централизованно управлять обновлениями серверов и рабочих станций.

Для настройки компьютера на обновление через WSUS: нажать WIN+R ввести gpedit.msc, откроется консоль управления групповыми политиками.

 консоль управления групповыми политиками

Перейти: Computer Configuration (Конфигурация компьютера) — Administrative Templates (Административные шаблоны) — Windows Update (Обновления Windows) — Specify intranet Microsoft update services location (Специфическое месторасположение сервисов обновления Microsoft).
Specify intranet Microsoft update services location Переставляем шар на Enable (Включено) и вписываем ip адрес вашего wsus сервера или его доменное имя, такое как указано в файле «c:\WINDOWS\system32\drivers\etc\hosts» либо назначено в DNS.
 Enable (Включено) Альтернативным способом является правка ключей в реестре, например можно использовать готовый файл реестра с содержимым и расширением .reg

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
«WUServer»=»http://*.*.*.*»
«WUStatusServer»=»http://*.*.*.*»

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
«NoAutoUpdate»=dword:00000000
«AUOptions»=dword:00000004
«ScheduledInstallDay»=dword:00000000
«ScheduledInstallTime»=dword:0000000c
«UseWUServer»=dword:00000001
«RescheduleWaitTime»=dword:0000000a

Для скорейшего отображения нового добавленного клиента в оснастке wsus необходимо запустить команду на данном клиенте:

Источник



Записки IT специалиста

WSUS.png

Этим вы убьете сразу несколько зайцев: значительно уменьшите загрузку канала и потребляемый интернет трафик, а также получите в руки мощный инструмент для контроля и управления процессом обновлений. Отныне все локальные ПК будут обновляться с вашего сервера и устанавливать только выбранные вами обновления.

Внимание! Данный материал предназначен для устаревших версий Windows Server, рекомендуем также ознакомиться с актуальной статьей: Windows Server 2012 — установка и настройка WSUS.

Приступим. Перед установкой WSUS следует подготовить сервер, мы будем использовать Windows Server 2008 R2, однако с небольшими поправками все сказанное будет справедливо для других версий Windows Server. Что нам понадобится:

  • IIS 6 или выше,
  • .NET Framework 2.0 или выше,
  • Report Viewer Redistributable 2008 ,
  • SQL Server 2005 SP2 Express или выше.

WSUS может хранить обновления в собственной БД или использовать SQL-сервер, последнее более предпочтительно с точки зрения производительности. Если в вашей сети уже развернут SQL-сервер можно использовать его, иначе вполне подойдет бесплатный SQL Express.

Получить все необходимые компоненты можно на сайте Microsoft:

При скачивании обращаем внимание на разрядность, для 64-битной ОС скачиваем 64-битные версии продуктов.

Пока идет скачивание добавим роли сервера. Нам понадобятся Веб-сервер (IIS) и Сервер приложений (в предыдущих версиях Windows Server установите .NET Framework). Сервер приложений устанавливается со значениями по умолчанию, а в Веб-сервере необходимо добавить следующие опции:

  • ASP.NET
  • Windows — проверка подлинности
  • Сжатие динамического содержимого
  • Совместимость управления IIS6

Добавив необходимые роли, установим Report Viewer и SQL Server c параметрами по умолчанию. Все готово, можно устанавливать WSUS.

Запустив инсталлятор, выбираем установку сервера и консоли администрирования, папку установки. В параметрах базы данных указываем наш SQL-сервер. Остальные настройки можно оставить по умолчанию.

WSUS-01.png

Сразу после установки запустится мастер начальной настройки. Все опции довольно просты и понятны. В параметрах синхронизации указываем откуда наш сервер будет получать обновления: с сервера Microsoft или с другого WSUS сервера. Последний вариант следует использовать если вам требуется развернуть дополнительный сервер обновлений, например, для филиала. В этом случае подчиненный сервер будет получать только одобренные вами обновления.

Кроме этого:  Что такое Homebrew и как его установить на MacOS

WSUS-02.png

На следующей закладке, при необходимости, указываем параметры прокси-сервера, и выполняем первичное подключение. Будет загружена информация от вышестоящего сервера: списки продуктов, типов обновлений и т.д.

При выборе продуктов не жадничайте, указывайте только то, что вам реально нужно, впоследствии вы всегда сможете изменить данный список.

WSUS-03.png

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

WSUS-04.png

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

Открыв консоль (доступна в меню Администрирование), первым делом запустите ручную синхронизацию, чтобы скачать все имеющиеся на сегодняшний день обновления для выбранных продуктов. В зависимости от того, чего и сколько вы выбрали при настройке, а также скорости вашего подключения это может занять продолжительное время.

WSUS-05.png

Пока идет синхронизация займемся настройкой клиентских ПК. Если у вас развернута Active Directory это можно сделать с помощью групповых политик. Откройте Управление групповой политикой, выберите необходимый объект и щелкнув правой кнопкой мышки нажмите Изменить. В открывшемся окне выберите Конфигурация компьютера — Политики — Административные шаблоны — Центр обновления Windows. Нас интересует параметр Указать размещение службы обновлений Microsoft в интрасети. Переводим его в положение Включено и указываем путь к нашему WSUS серверу в виде http:\\ИМЯ_СЕРВЕРА.

WSUS-06.png

Также советуем настроить опцию Настройка автоматического обновления, которая полностью повторяет аналогичную настройку на клиентских ПК. Через некоторое время, необходимое для обновления групповых политик, компьютеры вашей сети начнут подключаться к серверу и получать обновления.

Если ваша сеть имеет одноранговую структуру, то вам придется настраивать каждый ПК в отдельности. Делается это через Редактор локальной групповой политики (Пуск — Выполнить — gpedit.msc), сам процесс настройки полностью аналогичен вышеописанному.

WSUS-09.png

Контролировать количество ПК и их статус вы можете в разделе Компьютеры консоли администрирования.

WSUS-07.png

Информации вполне достаточно, чтобы быстро оценить общую ситуацию и обратить внимание на проблемные места. Красные крестики указывают на то, что на данных ПК произошли ошибки в обновлении, с каждым таким случаем надо разбираться в отдельности. По каждому обновлению формируется детальный отчет, содержащий все необходимые для анализа проблемы данные.

WSUS-08.png

Также рекомендуем разбить ПК на группы, для каждой группы можно назначить свою политику обновлений. Так в отдельную группу можно выделить сервера, для которых автоматически устанавливать только критические обновления безопасности.

Вот мы и подошли к еще одной важной настройке сервера — автоматическом одобрении. Клиентские ПК могут получать только одобренные обновления, но каждый раз делать все вручную нереально, поэтому часть обновлений можно одобрять автоматически. Откроем Параметры — Автоматические одобрения и активируем уже имеющуюся там политику, которая позволяет автоматически устанавливать критические обновления и обновления безопасности.

WSUS-10.png

Здесь вы можете создавать свои правила и назначать их любой группе ПК. Например мы создали правило: автоматически одобрять все обновления MS Office группы Рабочие станции.

WSUS-11.png

Просмотреть все доступные обновления можно в разделе Обновления, здесь же можно одобрять их вручную. Мы рекомендуем завести один или несколько тестовых ПК (можно виртуальных) и тестировать на них обновления и пакеты новых функций и только после этого одобрять обновления для установки. Одобрить обновления можно как для всех ПК, так и для группы, в качестве примера мы одобрили установку пакета Silverlight для группы Рабочие станции.

WSUS-12.png

В качестве обслуживания сервера стоит время от времени (где-то раз в месяц) проводить очистку сервера. Это позволит избежать черезмерного увеличения размеров базы за счет удаления невостребованных, уже не нужных и неодобренных вами обновлений.

WSUS-14.png

На этой ноте мы и закончим наше повествование, материал данной статьи позволит вам быстро развернуть и сделать базовые настройки сервера обновлений. С задачей тонкой настройки вы должны без труда справиться самостоятельно.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал

Источник

Ручная установка обновлений Windows

Сейчас я составлю себе шпаргалку как можно быстро установить все обновления на систему не задействую корпоративный вариант управления обновлениями в предприятии именуемый как WSUS. Вот у меня в обслуживании мало компьютеров и держать только ради этого целую систему, управлять конечно же всеми заведенными станциями это удобно, экономия времени. Как быть с компьютерами которые мне приносят на чистку, разбору что не так с системой. Я когда все проверил и поправил стараюсь установить обновления Windows, не установка их существенно повышает вероятность, как повторного заражения так и уменьшения безопасности. Нет 100% уверенности что с их установкой станет хуже, а вот без них хуже уже есть. Ну да ладно лирики, это весь пошаговая заметка напоминалка, в основе будет лежать утилита именуемая, как WSUS Offline Update.

Чтобы выкачать все необходимые обновления нужно , развернуть виртуальную систему в окружении VirtualBox и подключить к ней диск, к примеру размером в 100Gb на который собственно и будет произведено офлайновое складирование выкачиваемых обновлений в виде каталога и исполняемого bat файл запуск которого спровоцирует установку всех выкачанных обновлений применительно к текущей системе с учетом архитектуры.

Кроме этого:  Расположение аккумулятора на Ford Transit и инструкция по его замене

Утилита скачивается с официального сайта — www.wsusoffline.net

Распаковав копирую каталог wsusoffline1062 На диске E: (100G) и запускаю с правами Администратора: E:\ wsusoffline\UpdateGenerator.exe

Отмечаю галочками необходимые мне пункта для которых я хотел бы иметь оффлайновую установку скачанных обновлений:

Вкладка Windows:

  • Windows 7 / Server 2008 R2(ws61/ws61-64) x86 Global (multilingual updates)
  • Verify downloaded updates
  • Include C++ Runtime Libraries and .NET Frameworks
  • Include Service Packs

А после нажимаю Start и побежали строки скачивания обновлений:

Идет скачивание обновлений согласно предустановленным параметрам

Когда процесс завершится, что все скачанные обновления будут располагаться: \wsusoffline\client => для из запуска используется исполняемый файл установки UpdateInstaller.exe. Копирую данный каталог на переносной носитель и вот сейчас у меня на руках все актуальные обновления для последующего ручного обновления систем так сказать все свое без зависимости от интернета. Хоть и обновления выходят часто, а так у меня статичная сборка это особой роли не имеет, всегда ведь эту сборку можно обновить да и качать обновления с использованием встроенных стредств Windows еще то удовольствие (медленно,не визуализированно и т. д.).

И вот процесс выкачивания обновлений успешно завершен, размер папки client составляет 1.91 Gb (на текущее число 08.06.2016), пробую установить обновления из офлайновой сборки на текущую систему (Windows 7 Professional SP1 x86). Перехожу в каталог: E:\wsusoffline\client и запускаю исполняемый файл UpdateInstaller.exe с правами Администратора, запускается мастер WSUS Offline Update 10.6.2Installer внутри которого можно определить галочками что необходимо установить и как потом поступить с системой: Verify installation packages (Проверить инсталлируемые пакеты)

  • Automatic reboot (Автоматически перезагрузить систему)
  • Shutdown on completion (Автоматически выключить систему)
  • Show log file (Показать лог файл)

В своем случая я отмечаю:

  • Update C++ Runtime Libraries
  • Verify installation packages
  • Show log file

и нажимаю Start, запустится консоль командной строки в процессом установки:

Консоль командной строки как устанавливаются обновления

Кому интересно может наблюдать лишняя крупица знаний формируемая на основе получаемого опыта это опыт вдвойне не стоит недооценивать выводы программ, логи, отчеты, ошибки — к примеру я так делаю всегда. Тот кто ждет готово от меня если я вижу, что сам не прикладывает никаких усилий идет лесом, тратить свое время на кого-то это роскошь.

А обновления все устанавливаются:

 А обновления все устанавливаются

Installing update 53 of 156 (stage size: 100)…

Verifying integrity of ..\w61\glb\windows6.1-kb2698365-x86_e64a2783ab3f4d42ccb7b

hashdeep.exe: Audit passed

Ожидаю…окончанием установки обновлений являют вот такие вот строки в запущенной консоли командной строки:

Installation successful. Please reboot your system now and recall Update afterwards.

Ending WSUS Offline Update at 9:41:54,20…

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

После проверяю количество обновлений установленных в системе:

C:\Windows\system32>wmic qfe list или же

C:\Windows\system32>systeminfo | findstr «Исправление(я):»

Исправление(я): Число установленных исправлений — 106.

Когда процесс завершится просто копируем каталог E:\wsusoffline\client на переносной носитель который всегда со мной. Затем когда мне понадобиться произвести установку обновлений то я воспользуюсь данным каталогом client.

Т.к. по дефолту имеется возможность скачивания обновлений ориентированных на English и немецкие версии, то чтобы поправить это дело нужно запустить консоль командной строки и выполнить следующие команды:

C:\Windows\system32>cd /d e:\wsusoffline\cmd

e:\wsusoffline\cmd>AddCustomLanguageSupport.cmd rus

Adding support for rus to .NET custom URL files…

Adding support for rus to IEx custom URL files…

Adding support for rus to MSSE custom URL files…

Adding support for rus to WLE custom URL files…

И удаляю дефолтное скачивание файлов с немецкой локалью запустив командный файл:

e:\wsusoffline\cmd>RemoveGermanLanguageSupport.cmd

Removing support for deu from static URL files…

Processing file ..\static\StaticDownloadLinks-dotnet.txt

Processing file ..\static\StaticDownloadLinks-msse-x86-glb.txt

Processing file ..\static\StaticDownloadLinks-msse-x64-glb.txt

Processing file ..\static\StaticDownloadLinks-w60-x86-glb.txt

Processing file ..\static\StaticDownloadLinks-w60-x86-5lg.txt

Processing file ..\static\StaticDownloadLinks-w60-x64-glb.txt

Processing file ..\static\StaticDownloadLinks-w60-x64-5lg.txt

Processing file ..\static\StaticDownloadLinks-w61-x86-glb.txt

Processing file ..\static\StaticDownloadLinks-w61-x64-glb.txt

Processing file ..\static\StaticDownloadLinks-wle-glb.txt

На заметку: а вообще в распакованном каталоге имеется конфигурационный файл поправив который можно определить все то что необходимо скачать: E:\wsusoffline\UpdateGenerator.ini, в моем случаем для меня имеет важность:

[Windows Server 2008 R2]

[Windows Server 2012 R2]

После запускаю E:\wsusoffline\UpdateGenerator.exe, отмечаю необходимое и нажимаю Start, полученный каталог client на данный момент этой заметки с учетом моих требований составляет: 6.31Gb

На заметку: советую раз отметить все необходимые продукты, скачать их, а если отметив необходимое после снять отметку обновления удаляться об этом говорит размер каталога client.

Вот что не удобно, когда уже в каталоге client запускаю UpdateInstaller.exe то каждый раз после установки обновлений и перезагрузки обнаруживаются еще обновления и приходится ждать когда же они установятся в систему, перезагружаться и если проверить еще раз то будут те которые еще можно поставить. И вот по прошествии довольно продолжительного периода использования мой вывод, если есть возможность использовать WSUS на серверной операционной системе, то его нужно использовать если же нет, то данная утилита хоть какая-та помощь в установке обновлений Windows по сравнению с ручным трудом.

Итого я для самого себя составил шпаргалку действий чтобы получить обновления Windows для локальной установки в отсутствии интернета или когда интернет желает лучшего в плане скорости доступа.

На этом я прощаюсь, с уважением автор блога — ekzorchik.

Источник