В рамках выполнения итогового проекта были развернуты три сервера с различными сервисами. Настройка производилась с использованием Ansible, а установка необходимых сервисов осуществлялась через роли и плейбуки. Репозиторий Ansible был инициализирован и выгружен в GitHub.
На первом сервере были установлены следующие сервисы:
Репозиторий Ansible был клонирован на этот сервер.
На втором сервере были установлены:
На третьем сервере установлены:
Ansible был установлен на первом сервере. Были созданы роли для установки и конфигурации необходимых сервисов на всех серверах. Настройки инвентаря Ansible внесены в файл hosts. Конфигурация Ansible была обновлена в ansible.cfg.
OpenVPN-сервер был настроен на первом сервере. Оставшиеся два сервера были настроены в качестве клиентов для подключения к VPN. Все настройки были выполнены через Ansible.
Репозиторий Ansible был инициализирован в каталоге /etc/ansible/ и выгружен в GitHub. Были выполнены следующие команды:
git init
git add .
git commit -m 'Initial commit with Ansible setup'
git branch -M main
git remote add origin https://github.com/<USERNAME>/diplomSF54.git
git push -u origin main
На всех серверах был добавлен пользователь mentor2 с паролем sf54. Этот пользователь имеет права sudo.
Все сервисы были успешно установлены и настроены согласно требованиям проекта. Работа с Ansible автоматизирована через роли и плейбуки. Репозиторий загружен на GitHub, и доступ к серверам организован через OpenVPN.
/etc/ansible
├── ansible.cfg # Конфигурация Ansible
├── hosts # Инвентарь серверов
├── site.yml # Главный playbook
├── README.md # Документация
├── roles/ # Каталог ролей
│ ├── zabbix_server/ # Роль Zabbix Server
│ ├── grafana/ # Роль Grafana
│ ├── filebeat/ # Роль Filebeat
│ ├── openvpn/ # Роль OpenVPN
│ ├── nginx/ # Роль Nginx
│ ├── apache/ # Роль Apache
│ ├── php/ # Роль PHP
│ ├── zabbix_agent/ # Роль Zabbix Agent
│ ├── bind/ # Роль Bind DNS
│ ├── mail/ # Роль Mail
│ ├── postgresql/ # Роль PostgreSQL
│ ├── elk/ # Роль ELK Stack
├── group_vars/ # Переменные для групп хостов
├── host_vars/ # Переменные для отдельных хостов
├── playbooks/ # Дополнительные playbooks
└── .gitignore # Игнорируемые файлы
| Роль | Сервер | Описание | |----------------|---------------|----------------------------------| | zabbix_server | monitoring | Устанавливает Zabbix Server | | grafana | monitoring | Устанавливает Grafana | | filebeat | all | Логирование Filebeat | | openvpn | monitoring | VPN-сервер | | nginx | web | Устанавливает Nginx | | apache | web | Устанавливает Apache | | php | web | Устанавливает PHP | | zabbix_agent | web, database | Устанавливает Zabbix Agent | | bind | web | Устанавливает DNS сервер | | mail | web | Почтовый сервер | | postgresql | database | Устанавливает PostgreSQL | | elk | database | Устанавливает ELK Stack |
В рамках дипломного проекта была разработана система автоматического развертывания серверной инфраструктуры с использованием Ansible. Основная цель проекта – автоматизировать установку и настройку сервисов на различных серверах для мониторинга, веб-хостинга и работы с базами данных.
git clone https://github.com/YOUR_USERNAME/ansible-diploma.git
cd ansible-diploma
Редактируем ansible.cfg, если требуется:
[defaults]
inventory = ./hosts
remote_user = ansible
ask_pass = false
Убедись, что inventory.ini содержит корректные IP-адреса всех серверов.
ansible-playbook -i inventory.ini site.yml
✅ Автоматизировано развертывание серверов с помощью Ansible
✅ Созданы роли для настройки сервисов
✅ Используется GitHub для хранения конфигураций
🔥 Проект готов к развертыванию и использованию! 🚀