Автоматизация Системного Администрирования, Обзор Проблем И Вариантов Решения. Эд Уилсон

Ниже представлен перевод части первой главы книги.

Powershell и WMI .

Выделено направление развития информационных систем применительно к системному администрированию.

Приведен взгляд Эда Уилсона на проблемы эксплуататоров: указывает направление снижения затрат на содержание инфраструктуры.



Решение административных задач

Спросите любого администратора Windows о его проблемах, и во главе списка окажется большой объем работы и постоянная нехватка времени на ее выполнение.

Они знают об инструментах автоматизации, возможно, даже знают о возможностях WMI и Powershell, но у них нет времени на освоение этих технологий.

Это позорная ситуация, поскольку принято считать, что до 70% ИТ-бюджета организации тратится на «поддержание всего в рабочем состоянии».

(примечание переводчика: в оригинале «держать свет включенным».

) .

Автоматизация может сократить расходы на эти 70%, высвободив время и деньги для задач, стоящих дальше в списке «проблем».

Также возможно, что они интересовались WMI или Powershell и нашли эти инструменты слишком сложными для изучения.

Это понятно, особенно учитывая сложность работы с WMI через VBScript и отсутствие примеров, объясняющих используемые приемы.

Даже меня приводят в ужас некоторые примеры Powershell-скриптов, выложенные в Интернете, что чувствуют те, кто только начал разбираться в этой теме? Администраторы, которые решают не использовать эти инструменты, упускают возможности снизить рабочую нагрузку и автоматизировать свои процессы.

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

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

PowerShell предназначен для того, чтобы сделать использование WMI более простым и понятным, чем ранее доступные языки сценариев.

PowerShell — это механизм автоматизации Microsoft, который, помимо прочего, обеспечивает легкий доступ к богатому набору инструментов управления, доступных в WMI. Вместе PowerShell и WMI предоставляют набор проверенных методов, которые позволяют быстро и легко управлять вашей системой.

Вы сможете автоматизировать многие распространенные задачи, которые в настоящее время отнимают слишком много вашего внимания.

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

Существует ряд проблем, которые затрагивают любую среду Windows значительного размера.

  • Увеличение количества систем
  • Возрастающая сложность инфраструктуры
  • Увеличение скорости изменений
Во второй части этой главы я покажу, почему PowerShell и WMI предоставляют богатый набор инструментов для решения этих проблем.

Для получения максимальной отдачи от PowerShell не требуется предварительного обучения, особенно при использовании WMI. Изучая язык и автоматизируя свои повседневные процессы, вы сможете добиться превосходной отдачи от времени, потраченного на процесс обучения.

Глава завершается двумя примерами, демонстрирующими мощь этой комбинации технологий.

В первом примере показано, как можно отключить все серверы в центре обработки данных с помощью одной команды, а во втором — как проверить настройки многих машин за один проход. Давайте начнем с рассмотрения обязанностей современного администратора Windows и проблем, с которыми он сталкивается.



1.1 Административные задачи

Администраторы очень занятые люди.

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

На рисунке 1.1 слева мы видим график снижения стоимости оборудования.

Например, я недавно приобрел ноутбук с 4-ядерным процессором (HyperThreading позволяет видеть восемь ядер) и с 16 ГБ оперативной памяти, собираюсь использовать его как свою мобильную лабораторию.

Итак, несколько лет назад машина с такими параметрами была в среднем сегменте серверов, а не ноутбуков!

Автоматизация системного администрирования, обзор проблем и вариантов решения.
</p><p>
 Эд Уилсон

То же самое справедливо и для серверов с 4-, 8- и даже 10-ядерными процессорами.

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

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

Снижение стоимости аппаратного обеспечения приводит к двум другим графикам; они отражают резкое увеличение сложности инфраструктуры и еще более быстрый рост административных расходов на поддержание ее в рабочем состоянии.

Постоянное усложнение инфраструктуры и рост затрат на данный момент являются основной проблемой ИТ-подразделений.

Для сокращения бюджета необходимо преодолеть кривую эксплуатационных расходов, и PowerShell с WMI может помочь вам в этом.

Для начала давайте разберемся – откуда сложность и увеличение затрат на администрирование? 1.1.1. Слишком много автомобилей Вам действительно нужен каждый сервер, который вы создаете? Многие, если не большинство организаций имеют слишком много серверов.

Это происходит по ряду причин:

  • Снижение затрат на аппаратную мощность – это приводит к тому, что при высокой нагрузке проще купить новый сервер, чем искать, как оптимизировать существующие.

  • Самостоятельные покупки отделов или покупки для проектов – это происходит из-за вопросов владения сервером; отделы или «разработчики проектов» не хотят, чтобы кто-то «сидел» на их серверах.

    Они не желают предоставлять свои ресурсы другим.

  • «Одно приложение — один сервер» — разделение приложений так, чтобы проблема в одном не затрагивала другое, это правило все еще может применяться для критически важных бизнес-приложений, но для приложений второго или третьего уровня это необязательно.

    И уж точно не обязательно для целей тестирования и обучения.

  • Медленная реакция или жесткость ИТ-подразделений – отсутствие контроля и пренебрежение процессами в ИТ-отделе приводит к путанице в проектах и хаотичным изменениям в системах.

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

жизнь системного администратора.

Виртуализация, которая идет полным ходом, также вносит свой вклад. Виртуализация имеет ряд преимуществ:

  • Количество физических серверов сокращается
  • Снижается потребность в дата-центрах организаций, в том числе за счет затрат на площади, электроэнергию и кондиционирование.

  • Емкость физических активов используется более точно, что приводит к большей рентабельности инвестиций.

Организация в целом выигрывает от виртуализации, но увеличивается административная нагрузка.

Если до виртуализации у вас было 100 серверов, а вместо них вы установили 4 физических хоста и виртуализировали на них 100 серверов, то у вас будет 104 системы, которыми нужно будет управлять.

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

Увеличение общего количества (физических плюс виртуальных) систем также означает, что вероятность инцидентов увеличивается по мере развития инфраструктуры.



1.1.2 слишком много изменений

Изменения можно рассматривать как худшую головную боль администратора.

К сожалению, окружающая среда не статична; изменения происходят всегда:

  • Операционная система и приложения регулярно получают обновления.

  • Выходят новые версии программ
  • Пространство хранения необходимо переконфигурировать в соответствии с меняющимися потребностями пользователей.

  • Типичные сценарии применения требуют замены или обновления оборудования.

  • Виртуализация и другие революционные технологии меняют экосистему и создают новые возможности и конфигурации.

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

Такая ситуация не может продолжаться бесконечно.

Компании не могут смягчить постоянно растущие административные расходы; сегодняшние экономические реалии запрещают использовать альтернативные механизмы, такие как бесконечное увеличение доходов, чтобы игнорировать рост расходов ИТ-подразделения.

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



1.1.3 Возрастающая сложность

Сложность — это настоящая проблема.

Это происходит по ряду причин:

  • В нескольких операционных системах используются разные наборы инструментов и терминология, и даже между двумя версиями Windows существуют различия.

  • Различные типы приложений, такие как базы данных, электронная почта, службы каталогов Active Directory и веб-приложения, требуют разных навыков, разных инструментов, предъявляют разные требования и создают разную нагрузку на серверы.

  • Многие машины выполняют одни и те же или схожие роли, но тонкие особенности их реализации и недокументированные возможности увеличивают вероятность ошибки и усложняют структуру.

Сложность увеличивается также из-за неполных знаний и навыков самих администраторов.

Слишком часто в проекте внедряется новая технология, и от системных администраторов ожидают, что они сразу же примут участие в управлении системой.

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

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

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

Это создает стресс для администраторов и приводит к недоверию со стороны руководства бизнеса.

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

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



1.2 Автоматизация – путь к прорыву

Решением этих проблем является автоматизация рутинных операций.

Мы создали их для того, чтобы позволить машинам выполнять простую, повторяющуюся работу! Автоматизация понимается по-разному.

Ниже представлена иерархия автоматизации.



Автоматизация системного администрирования, обзор проблем и вариантов решения.
</p><p>
 Эд Уилсон

Для реализации уровня выше этой иерархии необходимо ответить на вопрос: «Будет ли какая-то польза от перехода на более сложный уровеньЭ» Я знаю ряд организаций, которые обладают возможностями стандартных инструментов Windows и несколькими инструментами массовой доставки команд. (примечание переводчика: не знаю, как правильно перевести «несколько инструментов массового редактирования») .

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

Автоматизация для большинства организаций представляет собой смесь инструментов командной строки, сценариев и запланированных задач.

Следующий вопрос: «Как мы можем автоматизировать мои административные задачиЭ» PowerShell предоставляет набор инструментов командной строки (называемых «командлетами»), которые можно использовать в интерактивном режиме, вводя данные в консоль.

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

В PowerShell вы можете использовать одни и те же команды, одно написание и один стиль как для командной строки, так и для сценариев.

PowerShell — отличный инструмент (да, я фанат PowerShell).

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

(примечание переводчика.

Ричард Сиддэуэй в книге «PowerShell в глубине» написал «если вы не используете WMI в сочетании с powershell, вы теряете 60% мощности») .

WMI предоставит вам доступ к стандартному набору инструментов управления системой, которые вы сможете использовать локально или на удаленном компьютере, возможно, даже работая с системами, отличными от Windows. (примечание переводчика, он имеет в виду ЦИМ) .

Сценарии можно запускать в интерактивном режиме или планировать по времени.

Но прежде чем мы углубимся в детали, нам нужно взглянуть на автоматизацию в целом.

В этой книге мы сосредоточимся на сценариях как основном средстве автоматизации.

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

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

Подробно эта тема раскрыта в главе 4 книги «PowerShell на практике» Мэннинга 2010 года.

Запланированные задачи и «автоматические реакции на события» слишком зависят от вашей конкретной инфраструктуры, в главе 3 мы начнем рассматривать, как можно автоматически реагировать на события, происходящие в вашей системе.

Давайте посмотрим на пример.

Допустим, вам необходимо определить объем свободного дискового пространства на нескольких машинах в вашей среде.

Один из способов — прийти в дата-центр, подключиться к каждой машине по очереди и посмотреть свободное место на диске С.

Записать ответ и повторить для следующей машины.

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

Таким образом, вам не придется покидать свой рабочий стол.

Но вам все равно придется сделать так много мелочей, вы все равно потеряете слишком много времени.

И решение, которое мне нравится, — использовать для этой цели PowerShell, код показан в листинге 1.1. Не волнуйтесь, если вы не понимаете этого прямо сейчас.

Мы вернемся к этому сценарию в главе 6, когда будем рассматривать, как управлять дисковой подсистемой.

Пример начинается со списка имен компьютеров в моей лаборатории.

Этот список передается по конвейеру командлету ForEach-Объект (foreach), который вызывает Get-WmiObject для каждого сервера из списка с запросом информации о логическом диске С.

Затем полученная информация форматируется и отображается в виде таблицы Листинг 1.1. Определение свободного места на диске:

  
   

"dc02", "W08R2CS01", "W08R2CS02", "W08R2SQL08", "W08R2SQL08A", "WSS08" | foreach { Get-WmiObject -Class Win32_LogicalDisk -ComputerName $_ -Filter "DeviceId='C:'" } | Format-Table SystemName, @{Name="Free"; Expression={[math]::round($($_.FreeSpace/1GB), 2)}} -auto

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

Обратите внимание, что PowerShell понимает аббревиатуру GB, а также KB, MB, TB и PB. Результат работы скрипта выглядит так:

SystemName Free ---------- ---- W08R2CS01 119.04 W08R2CS02 118.65 W08R2SQL08 114.8 W08R2SQL08A 115.17 WSS08 111.41 DC02 118.53

В этот скрипт можно внести ряд улучшений:

  • Поместите имена компьютеров в файл CSV (как мы это сделаем в листинге 1.4).

  • Добавьте результат своей работы в Excel или базу данных, чтобы увидеть тенденцию изменения дискового пространства.

  • Запланируйте выполнение задачи в планировщике
Этот сценарий работает для меня с первыми двумя улучшениями.

Он регулярно сообщает о дисковом пространстве, и вы можете видеть тенденции.

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

Если что-то случится, могу добавить Написание этого сценария заняло у меня всего несколько минут, и это экономит мне время, когда я запускаю его снова и снова.

Вот как PowerShell помогает вам сэкономить время.

Джеффри Сновер, архитектор PowerShell, написал: «Я твердо верю, что экономика определяет, что люди делают и чего не делают. PowerShell спроектирован с нуля как расширяемая, высокоуровневая, ориентированная на задачи абстракция, снижающая затраты на администрирование и поддержку».

Полный текст его статьи: (уже переведено здесь) «Семантический разрыв» доступен на странице блога Windows Powershell по адресу blogs.msdn.com/b/powershell введите в поиск «семантический разрыв», и вы наткнетесь на эту статью.

примечание переводчика: я пропустил здесь несколько разделов


1.3.3 Разрыв кривой роста

На рисунке 1.1. Мы наблюдаем постоянный рост организационной сложности и административных расходов.

Этот постоянный рост сложности и затрат рано или поздно приведет к потере баланса и задержке роста из-за затрат на управление; необходим способ остановить этот рост. PowerShell может помочь остановить рост затрат, предоставляя следующее:

  • предоставляет набор инструментов для интерактивной работы с сервером и приложениями
  • Работает на всех системах Windows (примечание переводчика: в оригинале используется слово Estate; точный перевод — поместья, владения.

    Подразумевается, что это базовая технология Microsoft и во всех системах так или иначе есть командлеты)

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

  • Встроенные возможности для дальнейшего повышения сложности автоматизации
Методы PowerShell для повышения производительности и эффективности.

А с помощью PowerShell и WMI вы можете рассчитывать на дальнейшее улучшение контроля над вашей системой.

P/S/ Итог: если ваша инфраструктура сталкивается с растущей сложностью, то вам следует задуматься о переходе на новый уровень автоматизации.

Я много слышу от друзей об усложнении инфраструктуры, постоянном давлении со стороны отделов маркетинга, постоянных изменениях в системах.

Лично я чувствую это давление; теперь я ищу способ создания автоматических ботов для административных задач.

Теги: #PowerShell #администрирование powershell

Вместе с данным постом часто просматривают: