Администрирование Компьютеров В Локальной Сети До Загрузки Операционной Системы

Привет, хабрахабр! Это моя первая статья и она посвящена удаленному администрированию.

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

В основном мы будем говорить об администрировании компьютеров до загрузки операционной системы.

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

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

В моем случае в организации около 100 компьютеров.

Переустановка операционных систем и восстановление образов операционных систем занимают много времени.

Приходилось обслуживать каждую единицу техники отдельно.

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

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

Что для этого нужно? Клиентский компьютер должен иметь сетевую карту, поддерживающую стандарт PXE (имеется почти в каждой сетевой карте).

Я не буду описывать принцип работы этого стандарта; в интернете много информации для ознакомления.

Скажу лишь, что он позволяет скачивать файлы по сети.

Итак, вам нужно включить сетевую загрузку в BIOS. Настройка клиентской части завершена.



Администрирование компьютеров в локальной сети до загрузки операционной системы

Сервер должен включить DHCP и TFTP. Чтобы не заморачиваться с настройками, я использовал программу TFTPD32, в которой уже есть все необходимые компоненты.

Программа находится в свободном доступе и имеет открытый исходный код. Чтобы настроить DHCP, мне пришлось побегать и снять MAC-адреса с каждого компьютера.

Это необходимо для идентификации компьютеров в сети.

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

Загрузчик, который будет выполнять все операции, — grub4dos. Был выбран именно этот загрузчик, поскольку имеется достаточный опыт создания с его помощью загрузочных USB-накопителей и много информации в Интернете.

Теперь о принципе работы.



Администрирование компьютеров в локальной сети до загрузки операционной системы

1. При включении компьютер обращается к DHCP-серверу за IP-адресом.

2. DHCP-сервер согласно своим настройкам выдает клиенту необходимый IP, а также IP-адрес TFTP-сервера и имя загрузочного файла.

В моем случае файл загрузчика grub4dos — grldr. 3. Клиентский компьютер, приняв запрос, устанавливает свой IP и обращается к TFTP-серверу с запросом загрузочного файла.

4. Сервер TFTP возвращает запрошенный файл.

Это выглядит так: Ответ сервера

Администрирование компьютеров в локальной сети до загрузки операционной системы

5. Загрузив файл, PXE запускает загрузчик и завершает свою работу.

Дальнейшую работу выполняет загрузчик.

После запуска загрузчик запрашивает файл меню.

lst. Этот файл содержит инструкции по установке ОС или запуску утилит. 6. Сервер отправляет файл меню.

lst 7. Программа-загрузчик на клиенте «читает» инструкции и выполняет их, загружая необходимые файлы с TFTP-сервера.

Дело в том, что TFTPD32 всегда создает один и тот же файл инструкций, меню.

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

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

lst, и изменил его.

В результате, как только клиентская машина запрашивает у сервера файл меню.

lst, программа отправляет GET-запрос на веб-сервер по протоколу http. ( http://localhost/getmenulst.phpЭip=IP ) запросить файл инструкций для конкретного IP. Файлы инструкций хранятся в базе данных.

Для наглядности приведу новую схему.



Администрирование компьютеров в локальной сети до загрузки операционной системы

Далее стояла задача подготовить образы для установки ОС и загрузки утилит, а также написать файлы инструкций Menu.lst. Например, Menu.lst для установки Windows 7 выглядит так: Установить Windows 7

  
   

color blue/green yellow/red white/magenta white/magenta timeout 0 default 0 title Install Windows 7 pxe keep chainloader --raw (pd)/pxeboot.n12

Чтобы загрузить Acronis True Image: Загрузка Акрониса

color blue/green yellow/red white/magenta white/magenta timeout 0 default 0 title boot acronis #root (hd0,0) kernel /kernel.dat vga=788 ramdisk_size=32768 acpi=off quiet noapicmbrcrcs on initrd /ramdisk.dat boot

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

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

Из систем ОС я собрал только Windows 7 и Windows XP. Пришлось залезть в Acronis True Image для автоматического восстановления системы из образа.

Также я скачал ISO-образы нескольких необходимых утилит. Для управления всем этим «чудом» я написал небольшую административную панель на PHP+MySQL. Он позволяет добавлять/удалять компьютеры, добавлять/удалять параметры, а также устанавливать параметры загрузки.

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

Настройка по умолчанию — «Загрузка с жесткого диска».



Администрирование компьютеров в локальной сети до загрузки операционной системы



Администрирование компьютеров в локальной сети до загрузки операционной системы

Не обращайте внимания на первую часть панели администрирования.

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

Позвольте мне подвести итог.

Эта система работает в режиме реального времени.

Иногда я нахожу ошибки и исправляю их, добавляя новые опции.

Процедура следующая: мне звонят и говорят, что система на компьютере «Имя» не загружается.

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

Тогда система сама восстановит всё из образа и сообщит пользователю, что всё может работать.

Если устанавливается новый компьютер, его MAC заносится в базу данных, в панели задаются параметры установки ОС, и Windows устанавливается сама без какого-либо участия.

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

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

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

Теги: #удалённое администрирование #удалённая установка ОС #администрирование сети #разработка веб-сайтов

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