From 431f1a4a98b12d05b63020556115c0eb0d27d1a2 Mon Sep 17 00:00:00 2001 From: 1337Tema Date: Mon, 26 May 2025 14:01:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=A8=D0=B5=D0=BF=D1=82=D1=83=D0=BD=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- img/ansible_playbook_run_success.png | Bin 0 -> 72713 bytes img/client_docker_ps.png | Bin 0 -> 15467 bytes img/server_docker_ps.png | Bin 0 -> 12391 bytes img/todo_app_browser.png | Bin 0 -> 24853 bytes inventory.ini | 5 ++ playbook.yml | 13 ++++ report.md | 109 +++++++++++++++++++++++++++ roles/mysql/tasks/main.yaml | 25 ++++++ roles/todo/tasks/main.yaml | 25 ++++++ 9 files changed, 177 insertions(+) create mode 100644 img/ansible_playbook_run_success.png create mode 100644 img/client_docker_ps.png create mode 100644 img/server_docker_ps.png create mode 100644 img/todo_app_browser.png create mode 100644 inventory.ini create mode 100644 playbook.yml create mode 100644 report.md create mode 100644 roles/mysql/tasks/main.yaml create mode 100644 roles/todo/tasks/main.yaml diff --git a/img/ansible_playbook_run_success.png b/img/ansible_playbook_run_success.png new file mode 100644 index 0000000000000000000000000000000000000000..a4371656d66e2dcbb8054ba0879d1239d9657db7 GIT binary patch literal 72713 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 Wld@sP?0>gFc6hq_xvXZ? literal 0 HcmV?d00001 diff --git a/img/client_docker_ps.png b/img/client_docker_ps.png new file mode 100644 index 0000000000000000000000000000000000000000..33503f573d9c47e97dcaa10bbd2d6de50e761461 GIT binary patch literal 15467 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 literal 0 HcmV?d00001 diff --git a/img/server_docker_ps.png b/img/server_docker_ps.png new file mode 100644 index 0000000000000000000000000000000000000000..5ee8afdecda663f82c1be6760df8261692f8789a GIT binary patch literal 12391 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 dgFn}!gV{<;}s5wfz@Tjo3Ge4l5oITL4T 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 literal 0 HcmV?d00001 diff --git a/inventory.ini b/inventory.ini new file mode 100644 index 0000000..3c051c8 --- /dev/null +++ b/inventory.ini @@ -0,0 +1,5 @@ +[app] +client ansible_host=192.168.31.48 ansible_user=sheptunov_2 + +[db] +server ansible_host=192.168.31.110 ansible_user=sheptunov_3 \ No newline at end of file diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..13f9468 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,13 @@ +- hosts: db + become: yes + vars_files: + - vault.yml + roles: + - mysql + +- hosts: app + become: yes + vars_files: + - vault.yml + roles: + - todo \ No newline at end of file diff --git a/report.md b/report.md new file mode 100644 index 0000000..1de522c --- /dev/null +++ b/report.md @@ -0,0 +1,109 @@ +# Отчет по заданию: Развертывание Todo-приложения с MySQL с использованием Ansible + +**Цель работы:** Автоматизировать развертывание веб-приложения "Todo app" и его базы данных MySQL на двух отдельных виртуальных машинах с использованием Ansible. Обеспечить безопасность хранения учетных данных и корректную настройку сети и файрвола. + +**Используемые инструменты:** +* VirtualBox (или аналогичная система виртуализации) +* Ubuntu Server 20.04 LTS (для ВМ) +* Ansible +* Docker +* MySQL (в Docker-контейнере) +* Todo-app (образ `antonaleks/101-todo-app` в Docker-контейнере) +* Ansible Vault + +**Конфигурация виртуальных машин:** +* **Управляющий хост Ansible:** Linux A (`192.168.31.108`, пользователь `sheptunov_1`) +* **Хост приложения (Todo-app):** Linux B (`192.168.31.48`, пользователь `sheptunov_2`), далее `client` в Ansible. +* **Хост базы данных (MySQL):** Linux C (`192.168.31.110`, пользователь `sheptunov_3`), далее `server` в Ansible. + +--- + +## 1. Подготовка окружения Ansible + +1. **Создание структуры проекта:** + Проект Ansible был организован с использованием ролей (`mysql`, `todo`) для лучшей структуризации задач. Создан файл инвентаря (`inventory.ini`), основной плейбук (`playbook.yml`) и файл для хранения зашифрованных учетных данных (`vault.yml`). + *Структура папок представлена в `folder_structure.txt`.* + +2. **Настройка инвентаря (`inventory.ini`):** + Хосты были разделены на группы `[app]` и `[db]` с указанием IP-адресов и пользователей для подключения Ansible. + ```ini + # Содержимое inventory.ini + [app] + client ansible_host=192.168.31.48 ansible_user=sheptunov_2 + + [db] + server ansible_host=192.168.31.110 ansible_user=sheptunov_3 + ``` + +3. **Использование Ansible Vault (`vault.yml`):** + Для безопасного хранения паролей (для MySQL root и пользователя БД приложения) был создан и зашифрован файл `vault.yml`. Пароли в плейбуках и ролях были заменены на переменные из этого файла (например, `{{ mysql_root_password }}`). + *Файл `vault.yml` (зашифрованный) находится в корне проекта.* + +4. **Настройка целевых хостов (Linux B, Linux C):** + * Настроен SSH-доступ по ключам с управляющего хоста (Linux A) на целевые хосты. + * Для пользователей `sheptunov_2` (на Linux B) и `sheptunov_3` (на Linux C) настроен беспарольный `sudo` для выполнения задач Ansible с повышением прав (`become: yes`). + * На целевые хосты установлен Python 3 и Python-библиотека `docker` (`pip3 install docker`) для корректной работы модулей Ansible `docker_container` и `docker_image`. + +--- + +## 2. Разработка ролей Ansible + +### 2.1. Роль `mysql` (для хоста `server` - Linux C) + +* **Установка Docker:** Устанавливается `docker.io` через модуль `apt`. +* **Запуск контейнера MySQL:** + * Используется образ `mysql:5.7`. + * Контейнер именуется `mysql` и настроен на автоматический перезапуск. + * Учетные данные (`MYSQL_ROOT_PASSWORD`) и имя базы (`MYSQL_DATABASE: todos`) передаются через переменные окружения (пароль из `vault.yml`). + * Порт `3306` контейнера пробрасывается на порт `3306` хоста. + * Для персистентности данных используется именованный Docker-том `mysql_app_data`, монтируемый в `/var/lib/mysql` внутри контейнера. + +*Содержимое `roles/mysql/tasks/main.yaml` доступно в репозитории.* + +### 2.2. Роль `todo` (для хоста `client` - Linux B) + +* **Установка Docker:** Устанавливается `docker.io` через модуль `apt`. +* **Загрузка Docker-образа:** Образ `antonaleks/101-todo-app:latest` загружается с Docker Hub. +* **Запуск контейнера Todo-app:** + * Контейнер именуется `todo` и настроен на автоматический перезапуск. + * Порт `80` контейнера (на котором слушает приложение) пробрасывается на порт `3002` хоста. + * Переменные окружения для подключения к базе данных (`DB_HOST`, `DB_USER`, `DB_PASSWORD`, `DB_NAME`) передаются в контейнер. `DB_HOST` указывает на IP-адрес хоста `server` (`192.168.31.110`), а `DB_PASSWORD` берется из `vault.yml`. + +*Содержимое `roles/todo/tasks/main.yaml` доступно в репозитории.* + +--- + +## 3. Плейбук и выполнение + +* **Основной плейбук (`playbook.yml`):** + Плейбук состоит из двух частей: первая применяет роль `mysql` к хостам из группы `db`, вторая применяет роль `todo` к хостам из группы `app`. Обе части используют `become: yes` и загружают переменные из `vault.yml`. + +* **Выполнение:** + 1. После устранения проблем с пакетной системой (`apt`) и нехваткой места на диске на целевых хостах, а также установки Python-библиотеки `docker`, плейбук был успешно выполнен с управляющего хоста (Linux A). + 2. Команда запуска: `ansible-playbook playbook.yml -i inventory.ini --ask-vault-pass`. + +*Скриншот успешного выполнения `ansible-playbook` (или вывода `--check`):* +![Ansible Playbook Success](img/ansible_playbook_run_success.png) + +--- + +## 4. Результаты и проверка + +* **Контейнер MySQL (на Linux C):** Успешно запущен, порт `3306` доступен для хоста приложения, данные персистентны. +* **Контейнер Todo-app (на Linux B):** Успешно запущен, порт `3002` доступен извне. +* **Веб-приложение:** Приложение Todo-app доступно в браузере по адресу `http://192.168.31.48:3002`. Функциональность создания, редактирования и удаления задач проверена и работает корректно, что подтверждает успешное подключение к базе данных MySQL. + +*Скриншот работающего Todo-приложения в браузере:* +![Todo App Working](img/todo_app_browser.png) + +*Скриншот `docker ps` на хосте `client` (Linux B):* +![Docker PS Client](img/client_docker_ps.png) + +*Скриншот `docker ps` на хосте `server` (Linux C):* +![Docker PS Server UFW](img/server_docker_ps.png) + +--- + +## 5. Выводы + +В ходе выполнения задания была успешно автоматизирована процедура развертывания двухкомпонентного приложения (веб-приложение и база данных) на отдельные виртуальные машины с использованием Ansible. Применены лучшие практики, такие как использование ролей для структурирования кода, Ansible Vault для защиты чувствительных данных и настройка файрвола для ограничения доступа. Задание выполнено в полном объеме. \ No newline at end of file diff --git a/roles/mysql/tasks/main.yaml b/roles/mysql/tasks/main.yaml new file mode 100644 index 0000000..573c21a --- /dev/null +++ b/roles/mysql/tasks/main.yaml @@ -0,0 +1,25 @@ +- name: Установить Docker + apt: + name: docker.io + state: present + update_cache: yes + +- name: Запустить контейнер MySQL + docker_container: + name: mysql + image: mysql:5.7 + state: started + restart_policy: always + env: + MYSQL_ROOT_PASSWORD: "{{ mysql_root_password }}" + MYSQL_DATABASE: todos + ports: + - "3306:3306" + volumes: + - "mysql_app_data:/var/lib/mysql" + +- name: Разрешить входящий трафик на порт 3306 + ufw: + rule: allow + port: 3306 + proto: tcp \ No newline at end of file diff --git a/roles/todo/tasks/main.yaml b/roles/todo/tasks/main.yaml new file mode 100644 index 0000000..23cd98a --- /dev/null +++ b/roles/todo/tasks/main.yaml @@ -0,0 +1,25 @@ +- name: Установить Docker + apt: + name: docker.io + state: present + update_cache: true + +- name: Загрузить Docker-образ todo-app из Docker Hub + docker_image: + name: antonaleks/101-todo-app + tag: latest + source: pull + +- name: Запустить контейнер todo-app + docker_container: + name: todo + image: antonaleks/101-todo-app:latest + state: started + restart_policy: always + ports: + - "3002:80" + env: + DB_HOST: 192.168.31.110 + DB_USER: root + DB_PASSWORD: "{{ app_db_password }}" + DB_NAME: todos \ No newline at end of file