Семенов М.А.
Державний заклад "Луганський національний університет імені Тараса Шевченка"
Розгортання кластерів Moodle за допомогою Terraform та Ansible
У сучасних умовах цифрової трансформації закладів вищої освіти системи дистанційного навчання повинні забезпечувати стабільну роботу під значними навантаженнями, особливо під час масового тестування, проведення сесій, синхронного навчання або пікової активності користувачів. Однією з найбільш поширених платформ електронного навчання є Moodle, однак її ефективне використання у великих університетах потребує масштабованої та автоматизованої серверної інфраструктури. Традиційні підходи до ручного адміністрування серверів ускладнюють підтримку стабільності, резервування та швидке відновлення системи після збоїв. У зв’язку з цим актуальним стає використання концепцій DevOps: Infrastructure as Code (IaC) та автоматизації конфігурацій [2; 5].
Метою роботи є дослідження підходів до автоматизованого розгортання кластерної інфраструктури Moodle із використанням Terraform та Ansible для забезпечення високої доступності та масштабованості університетських LMS-систем.
Запропонований підхід базується на розподіленні компонентів Moodle між декількома вузлами: балансувальником навантаження, групою вебсерверів, окремим сервером бази даних, файловим сховищем та системою кешування (рис. 1). Для автоматизованого створення інфраструктури використовується Terraform, який дозволяє описувати серверні ресурси у вигляді декларативного коду. Завдяки цьому адміністратор може швидко створювати або відновлювати серверні середовища у хмарній або локальній інфраструктурі, зокрема у середовищі VMware чи публічних хмарах.

Рис. 1 - Мінімальна конфігурація кластера Moodle
Після створення віртуальної інфраструктури виконується автоматизована конфігурація серверів засобами Ansible [1]. Playbook-сценарії забезпечують встановлення PHP, вебсерверів Nginx або Apache, систем кешування Redis, налаштування MariaDB/PostgreSQL, синхронізацію директорії moodledata та розгортання самого Moodle. Окремо автоматизуються процеси SSL-конфігурації, резервного копіювання, cron-завдань та моніторингу сервісів.
Особливу увагу приділено забезпеченню горизонтального масштабування. За умови збільшення навантаження Terraform [3] дозволяє автоматично створювати додаткові вебвузли Moodle, після чого Ansible виконує їх повну конфігурацію та інтеграцію до кластера. Для балансування навантаження можуть використовуватися Nginx або HAProxy, а для зменшення навантаження на базу даних — Redis/Memcached та механізми кешування Moodle Universal Cache [4].
У доповіді також розглядаються питання відмовостійкості та безпеки. Використання автоматизованих сценаріїв дозволяє мінімізувати помилки ручного адміністрування, забезпечити стандартизацію конфігурацій та пришвидшити оновлення системи. Крім того, Infrastructure as Code спрощує аудит змін, контроль версій конфігурацій через GitLab або GitHub та інтеграцію з CI/CD-процесами.
Результати дослідження демонструють, що використання Terraform та Ansible для розгортання кластерів Moodle дозволяє значно скоротити час адміністрування, підвищити стабільність роботи LMS та забезпечити готовність університетської цифрової інфраструктури до великих навантажень в умовах масового дистанційного навчання.
Список використаних джерел
- Ansible Collaborative. Red Hat - We make open source technologies for the enterprise. URL: https://www.redhat.com/en/ansible-collaborative.
- Experiences with Hundreds of Similar and Customized Sites with DevOps / C. Rodriguez et al. 2021 International Conference on Computational Science and Computational Intelligence (CSCI), Las Vegas, NV, USA, 15–17 December 2021. 2021. URL: https://doi.org/10.1109/csci54926.2021.00014.
- Terraform. Terraform | HashiCorp Developer. URL: https://developer.hashicorp.com/terraform.
- The Moodle Universal Cache (MUC). Moodle community. URL: https://docs.moodle.org/dev/The_Moodle_Universal_Cache_(MUC).
- Vicente A., Cunha J. Applying the DevOps methodology for a more efficient process of teaching-learning computer programming. 2022 31st Annual Conference of the European Association for Education in Electrical and Information Engineering (EAEEIE), Coimbra, Portugal, 29 June – 1 July 2022. 2022. URL: https://doi.org/10.1109/eaeeie54893.2022.9820399.