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.
На самом сервере нет ни 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)