IT-Planet_Network_Nosenko_stage2

Форк
0

6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
README.md

Демонстрация функционала:

Для ручного запуска на сервере средствами docker-compose:

docker-compose up -d

Результатом запуска будет следующее:

  • Сборка docker образа на базе описанного Dockerfile;
  • Запуск двух контейнеров из собранного образа:
    • flask-app1
    • flask-app2
  • Запуск контейнера:
    • load-balancer

Результат запуска:

img

при обновлении страницы можно увидить работу балансировщика нагрузки, т.к. тестовое приложение flask выводит на экран имя хоста на котором оно запущено:

img

Для автоматизированного запуска на сервере средствами docker-compose и ansible:

Например: есть "чистая" виртуальная машина созданная в Yandex Cloud на базе ОС Debian:

img

С рабочего места "разработчика" достаточно выполнить сделующую команду:

  • при условии того, что АРМ "разработчика" настроено должным образом (установлен ansible, в организации корректно настроен DNS и записи обновляются автоматически);

    • ну или "разработчик" внёс соответствующую запись в файл "hosts" для идентификации созданной ВМ по имени, т.к. в inventory для ansible ожидается доступ по имени;
ansible-playbook playbook.yml

img

img

Результат работы данного playbook-сценария получается следующий:

  • на удалённой машине выполняется установка docker (в playbook вызывается роль docker);

  • на удалённой машине выполняется установка docker-compose (в playbook вызывается роль docker-compose);

  • перемещаются все необходимые файлы для запуска приложения;

  • генерируется самоподписанный сертификат для доступа к приложению по HTTPS;

  • выполняется запуск стека контейнеров описанных в docker-compose.yaml.

Таким образом, после успешного запуска playbook-сценария в браузере можно проверять работоспособность приложения:

img

  • тестовое приложение flask выводит на экран имя хоста на котором оно запущено;

при обновлении страницы - можно проверить работоспособность балансировщика нагрузки:

img

Также можно наблюдать корректный доступ по протоколу HTTPS:

  • P.S. в контейнера который настроен в качестве балансировщика - реализован редирект с HTTP на HTTPS:

img

img

Описание

Задание второго этапа

Языки

Python

  • Dockerfile
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.