infra
Описание
Дипломный проект DevOps от Scillbox
Языки
- HCL70,6%
- Go20%
- Shell7,5%
- Dockerfile1,9%
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.
