Диплом: Автоматизация процесса системного администрирования высоконагружаемого веб-приложения для ООО "Лайтсофт Рисерч"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
77
2.3. Программное обеспечение задачи
2.3.1. Общие положения
В данном дипломном проекте автоматизируется процесс системного
администрирования для проекта «TopHotels», а именно та рутинная работа,
которую делают сотрудники отдела эксплуатации серверов. Для автоматизации
большинства задач будут написаны файлы сценария автоматизации на
формализованном языке разметки xml которое будет выполняться в выбранном
ПО Ansible. Данные файлы или сценарии автоматизации в терминологии ПО
Ansible также называют playbook или плейбук[13].
Для задачи автоматизации переустановки ОС на физическом сервере
будет использован комплекс ПО, задача которого автоматизировать этот
процесс. На рисунке 14 показана описываемая схема работы автоматизации.
Рис. 14 Cхема работы автоматизации.
Исходя из иллюстрации, можно сделать вывод, что основными элементами
автоматизации являются поступающие в отдел обращения. В случае, если это
задача установки ОС на физический сервер, она будет выполнена при помощи
автоматизированной установки по протоколу PXE, используя скрипты
kickstart[8]. Для других задач используется ПО Ansible, сценарии которого в
зависимости от задачи будут запущены на узле управления, после чего задача
будет выполнена.
78
2.3.2. Программно-аппаратная архитектура разрабатываемого решения
Разрабатываемое решение представляет из себя набор предварительно
сконфигурированных серверов, для которых в данном проекте разрабатываются
сценарии автоматизации. В главе 1.4.3 были обоснованы технические средства
для данного проекта. Архитектура представляет из себя один физический сервер,
на котором развернуты следующие виртуальные серверы:
Узел управления, на котором установлено ПО Ansible.
Сервер контроля версий GitLab, на котором будут храниться все
конфигурации ПО Ansible.
Сервер установки ОС на котором установлен dhcpd-сервер с pxe, модуль
syslinux и установочные ISO-образы, которые в комплексе дают
возможность сетевой установки ОС.
На рисунке 15 изображена серверная архитектура разрабатываемого проекта.
Рис. 15 Архитектура разрабатываемого проекта
Узел управления представляет из себя виртуальный сервер, на котором
установлено ПО Ansible. Все разработанные сценарии автоматизации
тестируются и выполняются на данном сервере. Запуск сценария представляет
из себя написание системным администратором определенных команд в
командной строке[13]. При запуске используется разработанный сценарий с
последующим его применением на целевом виртуальном или физическом
79
сервера или группе таких серверов. Перед началом работы, системный
администратор должен обратиться к серверу контроля версий, для того чтобы
всегда иметь свежую версию сценариев автоматизации из репозитория Git.
Сервер ПО GitLab является виртуальным сервером. Представляет из себя
расширенную систему контроля версий Git с веб-интерфейсом, в которой будет
храниться код разработанных сценариев автоматизации Ansible[14].
Сервер установки ОС представляет из себя виртуальный сервер с набором
ПО. На нем установлен dhcpd-сервер с pxe, модуль syslinux и установочные ISO-
образы. Dhcp-сервер дает возможность серверу, на котором производится
установка или переустановка ОС иметь возможность загрузки с сетевой карты
по протоколу PXE. Модуль syslinux дает возможность сконфигурировать и
настроить меню выбора переустанавливаемой системы. В совокупности, данный
набор ПО при его настройке дает возможность переустановки операционной
системы по сети[8].
80
2.3.3. Описание разработанных конфигураций
Так как процесс автоматизации задач системного администрирования
является комплексным и сложным, было автоматизировано несколько задач,
описание которых будет в данной главе. Для примера таких задач, были взяты
реальные обращения из системы sysa.ls1.ru, которые изображены на Рисунке 8-
10.
Первой рассмотренной задачей автоматизации является автоматизация
установки операционных систем на физические серверы. Для данной задачи
была использована связка ПО pxelinux+isc-dhcpd-сервер. Логика работы данного
элемента автоматизации инфраструктуры представляет главным образом из себя
dhcp-сервер, при загрузки с которого компьютер или сервер получает IP-адрес, а
после файл-загрузчик pxelinux.0. За данный этап отвечает конфигурационный
файл /etc/dhcp/dhcpd.conf, описанный в приложении 1. Для того, чтобы сервер
имел возможность загрузить файлы по PXE, также необходимо иметь
настроенный tftp-сервер. Его задачей является предоставление загрузочных
файлов для сервера, а также начальных установочных образов ОС, с которых
будет происходить установка ОС. Dhcp-сервер в данном случае только
указывает загружающимся с него компьютерам название загрузочных файлов,
однако не дает возможности их загрузить. Эту роль выполняет tftp-сервер,
который поставляется в пакете xinetd. Конфигурационный файл xinetd находится
в директории /etc/xinetd.d, его конфигурация описана в приложении 1. Важным
также является пакет syslinux, который должен быть установлен в сервер
установки ОС. Задачей данного пакета является предоставление загрузочного
файла pxelinux.0, а также возможность отображения PXE-меню установки ОС.
Для pxelinux.0 конфигурация не требуется, однако PXE-меню для отображения
опций установки ОС требуется конфигурация. Данная конфигурация приведена
в приложении 1. Путь данной конфигурации на сервере находится в директории
/home/vtorov/pxe/pxelinux.cfg/. В приложении преведены два файла первый
default, в нем описывается главное меню установки ОС. Второй файл –
centos.cfg, в нем описано меню установки ОС CentOS7. Основным требованием
на данном этапе автоматизации был отказ от преднастраеваемых установочных
ISO-образах ОС. Их поддержка достаточно сложна и трудозатратна. Потому для
данного пункта автоматизации необходимо использовать оригинальные
81
установочные образы ОС. Вторым требованием также является абсолютное
безучастие администратора во время установки ОС по сети. Эту задачу
выполняют файлы автоматизации kickstart. Конфигурации kickstart
прописываются в конфигурационный файл centos.conf директории pxelinux.cfg.
В эти файлы входят все настройки ОС, которые администратор должен
производить вручную во время установки ОС, например разметка диска,
установка языка и выбор региона, необходимые устанавливаемые пакеты,
пользователи и пароли. Все эти настройки содержатся в файле kickstart, который
приведен в приложении 1. Для того, чтобы установка через kickstart скрипты
была возможна, необходимо, чтобы программа установки ОС скачивала их по
протоколу http. Для данной цели был выбран легковесный веб-сервер nginx,
конфигурация которого отображена также в приложении 1. Таким образом, при
сочетании вышеописанного набора ПО решается задача полностью
автоматизированной установки ОС на физические сервера[8].
Второй задачей, которая была рассмотрена и решена в рамках этого проекта
автоматизации была автоматизация процесса разворачивания виртуальных
серверов для проекта «TopHotels». Для данной задачи были написаны сценарии
автоматизации для ПО Ansible, которые производят автоматическое
разворачивание и запуск контейнеров LXC на заданных серверах. Данная
конфигурация производит автоматическое клонирование образа контейнера
LXC, после чего производит минимальные настройки и запускает его. Описание
данного сценария приведено в приложении 2. После запуска, контейнер
становится доступным по локальной сети, и к нему можно производить
применение другие сценариев автоматизации Ansible.
Третьей задачей, которая автоматизируется в рамках проекта это
конфигурация недавно установленного сервера виртуального или физического
с целью его первоначальной настройки. Данный шаг необходим, для того чтобы
каждый сервер имел одни и те же настройки, необходимый набор ПО, настройки
политик безопасности. Данный пункт автоматизации выполнен при помощи
написанного сценария Ansible, который автоматизирует задачу. Данный
сценарий включает в себя установку часового пояса, настройки безопасности,
настройки синхронизации времени, установку агента мониторинга и многое
82
другое, без чего работа сервера не возможна. Пример данной конфигурации
приведен в приложении 3.
Четвертой задачей, которая была реализована в данном проекте является
сценарий автоматизации для ПО Ansible, который производит автоматическую
установку СУБД PostgreSQL. Данный сценарий производит установку в систему
настроек репозитория ПО СУБД PostgreSQL, производит обновление
репозитория с целью обновления кэша доступных пакетов. После этого,
скачивается необходимые пакеты. Сценарий делает инициализацию базы
данных, после чего запускает сервис и добавляет его в автозагрузку, чтобы
СУБД PostgreSQL запускался при старте ОС автоматически. Таким образом,
задача с большим количеством действий сводится только к запуску одного
сценария ПО Ansible. Пример данной конфигурации приведен в приложении 4.
83
2.4. Контрольный пример реализации проекта и его описание
В качестве контрольного примера предлагается рассмотреть сценарий
обработки автоматизированного в данном проекте комплекса задач. Так из главы
1.4.1 стало известно, что в рамках данного проекта автоматизируется несколько
видов типовых задач системного администрирования, пример автоматизации
которых предлагается рассмотреть. В данном проекте запуск и выполнение
задачи автоматизации выполняется в консольном режиме с компьютера
системного администратора.
Установка и настройка ОС на физические серверы. В случае, если имеется
задача установки операционной системы на сервер, либо её переустановка,
системный администратор должен подключиться к серверу при помощи
удаленной консоли KVM и выбрать на ней нужный сервер. После этого, сервер
необходимо перезагрузить и настроить последовательность загрузки сервера с
сетевой карты. После того, как это условие выполнено, сервер перезагружается,
производит загрузку по протоколу PXE и отображает меню выбора образа ОС,
которую необходимо установить. На Рисунке 16 показано главное меню выбора
ОС для установки.
Рис. 16 Главное меню установки ОС
В данном меню из множества вариантов можно на выбор перейти в меню
установки ОС FreeBSD, CentOS или перейти в меню диагностики, где можно
84
загрузиться с образа для проверки памяти, восстановления данных или работы с
загрузочными дисковыми утилитами. На рисунке 17 показано меню установки
ОС CentOS, из которой мы выберем нужную.
Рис. 17 Меню выбора ОС CentOS для установки
После выбора в меню необходимой ОС, начнется её автоматическая установка.
Никакого выбора разметки дисков, настроек сети и любых других действий
производить не нужно, операционная система полностью установится сама на
основе заранее настроенной конфигурации. Процесс автоматической установки
отображен на рисунке 18.
85
Рисунок 18 Процесс автоматической установки ОС
Разворачивание виртуальных серверов. В случае необходимости развернуть
виртуальную машину на каком либо сервере, системному администратору
необходимо зайти на сервер системы контроля конфигураций, используя
протокол SSH. После этого, необходимо запустить разработанную в данном
проекте конфигурацию разворачивания виртуальных серверов lxc-create.yml при
помощи команды ansible playbook lxc-create.yml из рабочей директории Ansible.
После запуска данной команды, пользователю будет предложено ввести имя
создаваемого виртуального сервера и его IP. Виртуальный сервер будет
развернут и запущен на целевом мастер-сервере автоматически. На рисунке 19
показан пример выполнения сценария, разворачивания виртуального сервера.
Рис. 19 пример отработки сценария разворачивания контейнера xlc
86
Для того, чтобы убедиться, что контейнер действительно запущен и работает,
необходимо подключиться к серверу и проверить его статус. Проверка
производится при помощи команды xlc-ls с параметром -f. На рисунке 20
изображен результат отработки данной команды.
Рис. 20 Проверка статуса запуска контейнера LXC
Таким образом, мы убедились в том, что контейнер был успешно настроен и
запущен[15]. К нему могут быть применены другие сценарии автоматизации,
чтобы произвести его настройку, установить на нем ПО, скопировать проект и
многое другое.
Подготовка сервера к работе. Так как недавно установленный сервер, не
важно физический или виртуальный, должен иметь обязательный набор ПО и
настроек которые должны быть на всех серверах, необходима автоматизация
этого процесса. К данной задаче относится наличие агента мониторинга,
настроек безопасности, необходимых утилит, настройки синхронизации времени
и многого другого. Данное ПО и настройки не вносится в установочные образы
для установки ОС или образы виртуальных серверов, так как в дальнейшем это
сильно затруднит поддержку в актуальном состоянии. Для запуска данной
задачи необходимо запустить разработанную в данном проекте конфигурацию
install_server.yml при помощи команды ansible playbook install_server.yml из
рабочей директории Ansible. Разработанная конфигурация полностью сама
настроит все конфигурационные файлы и параметры, никаких действий от
пользователя, кроме указания целевого сервера не требуется. На рисунке 21
изображен пример выполнения сценария автоматической настройки.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)