Skip to content

prodapp26 — Приложение (production)

Общее

Параметр Значение
Тип CPX22 (2 vCPU, 4 GB RAM, 80 GB SSD)
ОС Ubuntu 24.04.4 LTS (Noble Numbat)
Ядро 6.8.0-106-generic
Public IP 46.225.154.159
Private IP 10.26.0.7
Timezone Asia/Jerusalem
Проект infra26
SSH ssh digi.i26.prodapp26 (порт 1022)
Ansible playbook project/prod26.yml
Ansible inventory name prod26

Архитектура

prodapp26 — чистый app-сервер: HAProxy и TLS-терминация находятся на lb26.

Internet → lb26 (HAProxy :443) → prodapp26 (nginx-контейнер 10.26.0.7:200NN) → FPM/MkDocs

На самом сервере нет ни HAProxy, ни certbot — всё управляется с lb26.

Сервисы

Системные

Сервис Порт Описание
node_exporter 10.26.0.7:9100 Prometheus-метрики хоста
bareos-filedaemon 10.26.0.7:9102 Клиент резервного копирования
gitlab-runner CI/CD runner
glpi-agent 1.15 Инвентаризация (glpi.digiproduct.co.il)

Docker-контейнеры

Контейнер Образ Порт Описание
autoheal willfarrell/autoheal Авто-перезапуск unhealthy контейнеров
cadvisor gcr.io/cadvisor/cadvisor:v0.55.1 10.26.0.7:8080 Метрики Docker

Production-сайты

Каждый сайт разворачивается плейбуком prod26-NN-*.yml через роли compose_php_fpm + compose_php_cli + haproxy_config (на lb26).

Домен Nginx-порт (lb26 → контейнер) CLI SSH Плейбук
10 edupsyhappy.co.il 10.26.0.7:20010 0.0.0.0:10010 prod26-10-edupsyhappy.co.il.yml
11 docs.digiproduct.co.il 10.26.0.7:20011 0.0.0.0:10011 prod26-11-docs.digiproduct.co.il.yml

Контейнеры на сайт

edupsyhappy.co.il (#10) — WordPress:

Контейнер Образ Сеть / IP
ngx_10-edupsyhappy.co.il nginx:1.29.5-trixie fpm=192.168.23.210, web=192.168.22.210
fpm_10-edupsyhappy.co.il wordpress:php8.4-fpm fpm=192.168.23.110
cli_10-edupsyhappy.co.il php84:8.4.14-cli cli=192.168.21.110, SSH 0.0.0.0:10010

docs.digiproduct.co.il (#11) — MkDocs (ops-документация):

Контейнер Образ Сеть / IP
ngx_11-docs.digiproduct.co.il nginx:1.29.5-trixie fpm=192.168.23.211, web=192.168.22.211
mkdocs_11-docs.digiproduct.co.il registry.digiproduct.co.il/ops/docs/docs:latest fpm=192.168.23.111
cli_11-docs.digiproduct.co.il php84:8.4.14-cli cli=192.168.21.111, SSH 0.0.0.0:10011

Файлы сайтов: /docker/volumes/NN-<sitename>/

CLI SSH-доступ к контейнерам

ssh -p 10010 [email protected]   # edupsyhappy.co.il
ssh -p 10011 [email protected]   # docs.digiproduct.co.il

Используется GitLab CI/CD для деплоя.

Docker registry

Продовые образы тянутся из приватного реестра registry.digiproduct.co.il.
Авторизация настроена ролью infra26 при первом деплое.

Мониторинг

Компонент Порт Scraped by
node_exporter 10.26.0.7:9100 116.203.108.152, 46.224.166.151 (mon26)
cadvisor 10.26.0.7:8080 46.224.166.151 (mon26)
glpi-agent роль prod, env production-infra26

Резервное копирование (Bareos)

Параметр Значение
Клиент (имя в Bareos) prod26 (не prodapp26!)
Клиент bareos-filedaemon на 10.26.0.7:9102
Директор bkp26 (10.26.0.8), FQDN bkp26-local.digiproduct.co.il
Хранилище Hetzner Object Storage fsn1.your-objectstorage.com
Бакет digibkpinfra26
Расписание WeeklyCycle
Удержание 90 дней
Макс. томов (incremental) 100
Spool dir /var/lib/bareos/spool/prod26

Бэкапы сайтов (/docker/volumes/NN-<sitename>/) управляются отдельно ролью bareos_bkp_wp_s3 в плейбуках prod26-NN-*.yml.

Файрвол

UFW отключён. Файрвол управляется через iptables (/etc/iptables/rules.v4).
Открытые порты: 1022/tcp (SSH), 10010–10011/tcp (CLI SSH контейнеров).
Порты 80/443 не открыты — входящий веб-трафик принимает только lb26.

Ansible-роли

Плейбук project/prod26.yml:

Роль Статус Назначение
infra26 закомментирована (уже применена) базовая настройка: swap 4GB, Docker, MySQL client, registry login, timezone
compose_autoheal закомментирована (уже применена) авто-перезапуск контейнеров
node_exporter закомментирована (уже применена) Prometheus-экспортер хоста
glpi_agent закомментирована (уже применена) инвентаризация
compose_cadvisor закомментирована (уже применена) Docker-метрики
systemd_bareos_client закомментирована (уже применена) bareos-filedaemon
bareos_bkp_system_s3 закомментирована (уже применена) бэкап системы в S3
systemd_gitlab_runner активна регистрация GitLab CI/CD runner

Связанные плейбуки

Плейбук Сайт Особенность
prod26-10-edupsyhappy.co.il.yml edupsyhappy.co.il WordPress, БД на dbprod26
prod26-11-docs.digiproduct.co.il.yml docs.digiproduct.co.il MkDocs (ops-документация)

Заметки

  • SSH нестандартный порт: 1022
  • HAProxy и certbot — на lb26, не здесь
  • Барeos-клиент зарегистрирован как prod26, а не prodapp26
  • Диск 18% (13 GB / 75 GB) — запас большой, CPX22 взят именно за объём диска
  • Журнал systemd ограничен 300 MB (@daily journalctl --vacuum-size=300M)