infra

0

Описание

Дипломный проект DevOps от Scillbox

Языки

  • HCL70,6%
  • Go20%
  • Shell7,5%
  • Dockerfile1,9%
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
README.md

skillbox diplom project

Дипломный проект разворачивающий инфраструктуру в ya cloud для тестирования
и продакшина состоящию из серверов: - 2 сервера ubuntu 20.04 c предустановленным и запущенным docker,
а так же балансировщика нагрузки между ними с ДНС именем test.86x.ru. - 2 сервера ubuntu 20.04 c предустановленным и запущенным docker,
а так же балансировщика нагрузки между ними с ДНС именем prod.86x.ru.
- сервер ubuntu 20.04 c предустановленным и запущенным gitlab-ranner
и prometheus с именем ДНС monitoring.86x
- На первый сервер тестового окружения устанавливается grafana
с ДНС именем grafana.86x.ru - на все сервера устанавливаются и запускаются службой node_exporter\

setup

Проверьте наличие gitlab-runner, должен быть в наличи с тагом vm-runner2
он посредством Webhooks через функции YA cloud стартует преднастроенный
ВРМ из статуса stopped и выполнит сборку инфраструктуры.
В результате сборки развернется и зарегистрируется в репозитории
service для разработчиков gitlab-runner. Развернется мониторинг
по адресу http://grafana.86x.ru:3000 вход логин admin, пароль admin
в котором выполните настройку указав источник prometheus по адресу
http://monitoring.86x.ru:9090\ Импортируйте из готовых наборов графиков (дашбордов) - дашбоард №1860
или создайте свой.
В логе на этапе apply можно взять внешний IP для настройки. так как ДНС
определение занимает время.

Для локально тестирования

Для внешнего тестирования test.86x.ru:8080
Для прод. prod.86x.ru:8080

Приложение отвечает по 3 эндпоинтам:

  • /health - 200 ok
  • /metrics - в формате метрик для prometheus, включая счётчик запросов в
    основной эндпоинт
    skillbox_http_requests_total
  • / - основной эндпоинт, возвращающий часть запроса и генерирующий строчку лога.

dependencies

Сборка зависит от gitlab-runner в настройках-ci/cd-Runners если он отсутствует
то зарегистрировать свой gitlab-runner
Требования к ПО gitlab-runner:

  • Linux Debian \
    • installed with dependencies gitlab-runner
    • installed with dependencies terraform
    • installed with dependencies pyton3
    • installed with dependencies ansible
    • скопируйте файл .terraformrc в домашнию папку раннера условие для
      ya cloud провайдера

description of the process

Проект создан и протестирован в UBUNTU 24.04, через gitlab-runnner
посредством Terraform разворачивает в ya cloud 4 сервера. Для
тестирования 2 плюс балансировщик, для прода 2 плюс балансировщик
На один сервер прода устанавливается gitlab-runners с prometheus,
На один из серверов теста устанавливается Grafana для мониторинга. В процессе выполнения динамический формируется файл hosts.txt с внешними
IP адресами для Ansible и запускает playbook разворачивающий docker и ПО сбора
метрик и мониторинга.В логе на этапе apply можно взять внешний IP. image INFRA