Введение 4
Глава 1. Теоретико-аналитическая часть 6
1.1 Обоснование постановки задачи 6
1.2 Выбор метода разработки 10
1.3 Формализованное описание технического задания 17
Глава 2. Практическая часть 23
2.1 Модельные представления объекта разработки 23
2.2 Описание продукта 28
2.3 Техническая документация 37
Заключение 50
Список информационных источников 51
Приложения 54
Приложение 1 54
Программный комплекс для централизованного управления конфигурацией рабочих станций под управлением GNU/Linux
В жизни каждого предприятия, особенно, если оно оказывает it-услуги, наступает момент, когда единиц компьютерной инфраструктуры становится больше, растут трудозатраты на обслуживание поддержку и разработку, становится сложно поддерживать инфраструктуру в единообразном состоянии. Сотрудники с более высокой квалификацией стараются автоматизировать рутинные задачи различными небольшими программами - скриптами, каждый из них считает, что он делает это лучше и качественнее остальных, что приводит к множеству вариаций конфигурации сервера, рабочей станции, сетевого оборудования [23].
Существует программное обеспечение, которое призвано решать подобные проблемы - система централизованного управления конфигурацией. Подобные средства позволяют поддерживать десятки, сотни и тысячи объектов ИТ-инфраструктуры в однообразном состоянии, позволяют менять конфигурацию и не беспокоиться о том, что ради этого необходимо вручную выполнить множество одинаковых действий на огромном количестве серверов. Подобные системы позволяют конфигурировать ИТ-инфраструктуру применяя подход IaC[18] (Infrastructure-as-Code, инфраструктура как код), когда пользователь системы описывает желаемую конфигурацию сервера, а система сама поддерживает эту конфигурацию в описанном состоянии. Что позволяет стандартизировать конфигурацию для различных объектов, а также унифицировать подходы к применению конфигурации на конечных устройствах. Примерами таких систем могут служить: Terraform, Puppet, Ansible, Chef, SaltStack и многие другие, которые различаются подходами к применению конфигураций, описанию желаемой конфигурации и языку программирования, с помощью которого реализован функционал системы.
Однако, подобные системы требуют довольно высокой компетенции сотрудника, чтобы успешно применять их в решении рабочих задач. Многие из этих инструментов часто не имеют графического интерфейса, а всё взаимодействие с ними производится через конфигурационные файлы и интерфейс командной строки.
В рамках данного проекта разработан вариант реализации программного комплекса (пользовательский интерфейс, программный интерфейс, планировщик для выполнения регулярных задач, СУБД для хранения конфигураций и различных настроек), который будет предоставлять пользователю возможность полностью автоматизировать процесс конфигурации нового сервера или рабочей станции: с момента первого включения, до момента ввода в эксплуатацию.
Предметом разработки является программный комплекс для централизованного управления конфигурацией рабочих станций под управлением GNU/Linux
Цель разработки - создать программный комплекс, позволяющий снизить трудозатраты на поддержку компьютерной инфраструктуры предприятия.
Задачи:
1. Произвести анализ состояния проблемы и подходов к ее решению.
2. Произвести анализ и обосновать выбор технологий реализации и необходимых программных платформ.
3. В соответствии с техническим заданием провести разработку программного комплекса.
4. Подготовить техническую и сопроводительную документацию.
Разработанный программный комплекс позволяет в полной мере контролировать ИТ-инфраструктуру предприятия, управляя конфигурациями серверов и рабочих станций. Это позволяет иметь хорошо документированную, прозрачную и легко обслуживаемую инфраструктуру.
Данный программный комплекс имеет высокую гибкость, простоту в работе и обслуживании. Не требует большого количества ресурсов для обеспечения работоспособности. В качестве дальнейших путей развития модернизации можно выделить следующие: разработка программного
интерфейса для интеграции программного комплекса со внешними системами, добавление возможности управления сетевым оборудованием.
В ходе разработки была достигнута цель, был создан программный комплекс, удовлетворяющий всем требованиям технического задания. В процессе разработки также был проведен анализ возможных подходов решения поставленной задачи, выбраны современные, необходимые для реализации инструменты и средства, разработано руководство пользователя системы.