Модули системы управления конфигурациями Ansible - Студенческий научный форум

XIII Международная студенческая научная конференция Студенческий научный форум - 2021

Модули системы управления конфигурациями Ansible

Селезнева А.М. 1
1БГУ им. академика И.Г. Петровского
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Система управления конфигурациями Ansible автоматизирует поставку программного обеспечения, управление конфигурацией и развёртывание приложений.

Ansible является инструментом без агента, который работает, соединяя несколько узлов вместе и выполняя модули посредством ssh-соединения. Впоследствии модули будут удалены в целях оптимизации памяти после их выполнения.

Архитектура Ansible проста для понимания. Существует механизм автоматизации, напрямую взаимодействующий с пользователем, пишущим playbooks и выполняющим их. Также он способен взаимодействовать со службами, размещенными в облаке, с помощью инструментов управления конфигурациями или базами данных [1].

Использование системы управления конфигурациями в значительной степени оптимизирует процессы управления и настройки серверного и сетевого оборудования в производственном процессе, так как предоставляет возможность развертывания настроек и программного обеспечения одновременно на большом количестве серверов и сетевых узлов, что снижает временные затраты и повышает эффективность процессов установки и конфигурирования в новой среде [2].

За действия, выполняемые Ansible, отвечают модули. Большое количество модулей (библиотека модулей) устанавливается наряду с установкой Ansible. Каждый из этих модулей призван отвечать за отдельную небольшую задачу.

Модули могут выполняться отдельно, либо их можно собрать в конкретный сценарий (play), а затем в высокоуровневый сценарий конфигурирования playbook.

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

Модули Ansible используются в playbook – высокоуровневых сценариях, которые пишутся на языке YAML. Но собственные модули могут быть написаны практически на любом языке разработки.

По умолчанию Ansible содержит в себе расширенный API для Python – так называемые shortcuts. В ходе разработки собственных модулей на других языках программирования необходимо пользоваться вспомогательными библиотеками, родными для каждого языка, в целях симплификации процесса разработки и интеграции в Ansible.

Ansible-модули являются независимыми блоками программного кода, или скриптами, которые выполняют простейшие задачи. Модули Ansible неспособны зависеть друг от друга, либо вызывать другие модули. Задачей в Ansible является конструкция в виде сценария, вызывающего модули с конкретными заданными параметрами.

Входные параметры модуля передаются в виде пар «ключ=значение». В ходе разработки модулей необходимо анализировать параметры с целью выявления данных и их присваивания конкретным переменным, чтобы впоследствии использовать их в коде модуля. Различные языки разработки имеют вспомогательные средства для решения такой задачи.

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

Модули Ansible всегда возвращают результат в виде строки JavaScriptObjectNotation (JSON), поэтому, при наличии структурированных выходных данных их легко преобразовать в переменные и обработать в playbooksAnsible [3].

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

Существует более двухсот модулей, используемых в Ansible для настройки IT-инфраструктуры (command, shell, script, raw, file, copy, cron, template и др.) Они разделяются на категории по критерию их поддержки:

сore – модули, поддерживаемые основной командой разработчиков Ansible;

networkподдерживается Ansible Network Team;

community – поддерживается сообществом Ansible;

certified – поддерживается партнерами Ansible.

Модули Ansible являются небольшими программами, которые загружаются, выполняются и удаляются по завершении из системы с помощью Ansible. Они несут в себе конкретную задачу и обеспечивают выполнение определенных функций. Такими функциями являются обработка проверки системы в целях определения соответствия состояния системы состоянию, запрошенному пользователем, а также приведение системы к этому состоянию при необходимости. К тому же модули предоставляют пользователю согласованный метод описания ожидаемого состояния системы.

Список использованных источников

Савватеев М.Е., Селезнева А.М. Возможности систем управления конфигурациями при развертывании и настройке почтовой системы в рамках деятельности образовательной организации // Национальная научно-практическая конференция с международным участием «Университет на пути к новому качеству науки и образования», 2020. 5 с.

Селезнева А.М. К вопросу о выборе системы управления конфигурациями для развертывания сервера организации // Ученые записки Брянского государственного университета, 2020 (2). С. 25-27.

McKendrick R. Learn Ansible. Automate cloud, security, and network infrastructure using Ansible 2.x. Packt Publishing, 2018. 572 p.

Просмотров работы: 16