Задачи конфигурирования инфраструктуры
Конфигурирование – это настройка системы для достижения поставленных целей.
Оценить сложность конфигурационного процесса можно только в случае определения всех выполняемых задач конфигурирования. То есть необходимо определить набор задач для каждого типа узлов, которые могут быть включены в состав типичной инфраструктуры. Основой каждой инфраструктуры являются серверные машины, которые используются для развертывания серверной части клиент-серверного программного обеспечения, систем управления базами данных для хранения данных этого программного обеспечения и внутренних сервисов, таких как хранилища файлов, почтовые серверы и т. п. Задачи конфигурирования такого узла заключаются в следующем:
- Создание среды развертывания приложений и сервисов в изолированных окружениях.
- Создание и конфигурирование изолированных окружений в соответствии с предъявляемыми к ним требованиями.
- Развертывание сервисов и приложений в изолированных окружениях.
Кроме серверных машин присутствуют узлы, которые входят в состав автоматизированных рабочих мест пользователей. В данном случае задачи конфигурирования сводятся к следующему:
- Создание пользователей и настройка прав - управление доступом пользователей к узлу.
- Подключение серверов печати, файловых серверов и т.п. - организация доступа к сервисам и разделяемым ресурсам.
- Установка программного обеспечения, которое необходимо для выполнения пользовательских задач.
Автоматизация конфигурирования инфраструктуры
Самыми современными подходами к автоматизации процесса конфигурирования инфраструктуры относятся:
- Решение на основе скриптов и контроллера домена.
- Решение с применением систем управления конфигурацией.
Первый подход предполагает использование скриптовых файлов для конфигурирования серверных машин и сервера контроллера домена с набором групповых политик для настройки узлов автоматизированного рабочего места. Скриптовые файлы являются набором команд для установки и настройки программного обеспечения. Такой способ не обеспечивает должной информативности о состоянии серверных машин и их программного обеспечения, а также не позволяет гибко изменять их конфигурацию на основе текущего состояния. Контроллер домена представляет собой удобный способ конфигурации персональных машин с точки зрения управления пользовательскими политиками по управлению доступом к машинам, доступом к серверным ресурсам и правам пользователей.
Более безопасное и комплексное решение предполагает использование технологий управления конфигурациями, который на текущий момент используются для настройки вычислительной техники. Инструменты для управления конфигурациями предполагают переход к новому подходу работы с конфигурацией - инфраструктура как код. Такой способ подразумевает реализацию процесса настройки сети при помощи набора готовых файлов конфигурации, которые написаны на языке разметки, используемой системой управления конфигурацией. В отличии от первого способа и ручного изменения конфигурационных настроек, данный подход прибегает к декларативному подходу и описанию желаемого результата. В данном случае конфигурация инфраструктуры рассматривается, как типичная кодовая база, что предоставляет возможность использовать инструменты контроля версий. Благодаря такому подходу существенно упрощается процесс возврата к различным версиям конфигурации при возникновении ошибок.
Самой популярной системой управления конфигурациями является система Ansible, которая представляет собой приложение командной строки для автоматизации информационных технологий с открытым исходным кодом, который написан на Python. Он может настраивать системы, развертывать программное обеспечение, а также организовывать рабочие процессы для поддержания развертывания приложений, обновлений системы и т.п. Главное преимущество Ansible - удобство и простота пользования, а также высокий уровень безопасности и надежности. В качестве протокола для передачи данных используется OpenSSH, для описания конфигурации используется язык YAML, который был разработан для начала работы без продолжительного обучения.