Статья опубликована в рамках: CXXV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 08 мая 2023 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ИСПОЛЬЗОВАНИЕ СИСТЕМ УПРАВЛЕНИЯ КОНФИГУРАЦИЕЙ ДЛЯ АВТОМАТИЧЕСКОГО РАЗВЁРТЫВАНИЯ ПЛАТФОРМЫ
АННОТАЦИЯ
В данной статье рассмотрено применение систем управления конфигурацией для простого автоматического разворота какой-либо платформы на несколько устройств одновременно.
Ключевые слова: системы управления конфигурацией; развёртывание платформы; автоматизация.
Развернуть платформу на одном устройстве вручную – достаточно тривиальная и посильная задача. Даже два устройства, скорее всего, не станут помехой. Но что делать, если счёт таких устройств идёт не на десятки, а на сотни и тысячи единиц? Тогда в дело вступает автоматика – скрипты и сценарии, которые запускаются от устройства к устройству, чтобы выполнить одни и те же действия. Но и у этого подхода есть достаточное количество проблем:
- Нет наблюдения за текущим состоянием системы. При попытке установить пакет, который войдёт в конфликт с другим пакетом, работоспособность устройства окажется близкой к нулю до момента разрешения конфликта;
- Сложности с кроссплатформенностью. Даже дистрибутивы операционных систем семейства GNU/Linux отличаются друг от друга репозиториями, менеджерами пакетов и путями к определённым файлам – конфигурационные файлы, предназначенные для Ubuntu, не подойдут к CentOS;
- Нет отчётности о проделанной работе. Это особенно важно в корпоративных системах, где зачастую каждый шаг необходимо контролировать вплоть до согласования.
Для решения этих и многих других проблем используют системы управления конфигурацией, они же SCM – Software Configuration Management. Под конфигурацией здесь подразумевается не настройка определённого программного обеспечения, а непосредственно программная конфигурация самого устройства – не важно, персонального компьютера или огромного сервера, – то есть то, какие программные продукты должны быть установлены, каким образом они должны работать и связываться друг с другом, какие пользователи каким образом должны использовать ресурсы устройства и так далее. Другими словами, SCM автоматически выполняет действия по настройке устройства, заданные пользователем [1].
Схема таких систем довольно проста. Есть три связанных между собой элемента:
- Устройство администратора. На нём создаются сценарии (затем они передаются на сервер), а также формируются запросы к серверу на исполнение этих сценариев;
- Сервер. На нём хранится список конечных узлов (иногда дополняется базой данных со статусами состояния этих узлов) и сценарии для исполнения. Задача сервера – принимать запросы с устройства администратора о том, какой сценарий на каких узлах должен быть использован, а также собирать информацию о состоянии узлов;
- Конечный узел. Под ними подразумеваются те устройства, которые должны быть сконфигурированы с помощью SCM.
В некоторых случаях (Chef Solo, Ansible) сервер исключается из цепочки, и все сценарии, как и список серверов, находится на устройстве администратора.
Рисунок 1. Краткая схема работы SCM
Системы управления конфигурацией не выполняют те функции, которые заданы в сценарии, напрямую. Они действуют от обратного – сначала проверяют, соответствует ли написанное в сценарии действительности, и в случае, если это так – шаг пропускается, в противном случае происходят изменения согласно сценарию. Так, например, если в сценарии один из шагов указывает на создание пользователя, который принадлежит определённой группе, а такой пользователь на конечном устройстве уже существует, во избежание ошибки никаких изменений произведено не будет. Кроме того, SCM заточены под выполнение действий на сразу нескольких устройствах, количество которых может превышать несколько сотен и даже тысяч.
Основными конкурирующими системами управления конфигурацией являются Chef, Puppet, SaltStack и Ansible. Каждая из них действует по-своему, обладает своими возможностями и особенностями, позволяют писать сценарии на разных языках, функционируют на разных операционных системах, но, тем не менее, работают по одному принципу и, главное, умеют справляться с задачами, достаточными для развёртывания платформы:
- устанавливать и удалять пакеты;
- создавать, копировать, удалять и модифицировать файлы;
- управлять правами на директории и файлы;
- скачивать необходимые файлы из сети Интернет;
- управлять ресурсами и процессами устройства;
- запускать пользовательские скрипты и команды в случае необходимости (даже в случае, если те требуют ввода данных пользователем).
Из всех существующих SCM именно Ansible заслужил всеобщее признание, до сих пор продолжая лидировать в списках подобного программного обеспечения [3]. Этому есть несколько объяснений:
- Ansible просто установить. Его пакет есть в репозиториях многих популярных дистрибутивах операционных систем семейства GNU/Linux, а также он доступен как модуль Python;
- Ansible лёгок в использовании. Все сценарии, используемые Ansible, создаются на языке разметки YAML, довольно лёгком для понимания и изучения;
- Ansible поддерживается и модернизируется. Для создания сценариев Ansible использует сотни различных модулей, созданных как разработчиками, так и пользователями;
- Сценарии Ansible кроссплатформенны. С помощью данного SCM можно конфигурировать не только узлы с GNU/Linux, но также с Windows, macOS, FreeBSD и некоторыми другими операционными системами;
- Ansible не требует установки клиентов на удалённые узлы, работая с помощью протоколов SSH и WinRM – для корректной работы необходим только установленный Python.
Рисунок 2. Список SCM по популярности
В завершении данной статьи стоит отметить, что системы управления конфигурацией используются с каждым годом всё чаще, так как позволяют пользователям не только разворачивать платформы на огромное количество устройств, но и отслеживать этот процесс на каждом его шагу.
Список литературы:
- Jessica Keyes. Software Configuration Management. Florida: CRC Press, 2004. – 640 p.
- Chef vs Puppet vs Ansible vs Saltstack: Which Works Best For You? / Edureka. – Режим доступа: https://www.edureka.co/blog/chef-vs-puppet-vs-ansible-vs-saltstack/ (дата обращения: 05.05.2023).
- Configuration Management Software Market Share / Datanyze. – Режим доступа: https://www.datanyze.com/market-share/configuration-management--313 (дата обращения: 30.04.2023).
дипломов
Оставить комментарий