Renew docs
This commit is contained in:
parent
130203c778
commit
f2de534734
3 changed files with 764 additions and 1498 deletions
1204
ARCHITECTURE.md
1204
ARCHITECTURE.md
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
90
README.md
90
README.md
|
|
@ -1,26 +1,88 @@
|
||||||
# Magos
|
# Magos
|
||||||
|
|
||||||
Программа для автоматизированного управления конфигурациями WAF.
|
Программа для автоматизированного управления конфигурациями Angie, PTAF Nginx, SolidWall Nginx и Docker Compose.
|
||||||
|
|
||||||
## Описание
|
## Описание
|
||||||
|
|
||||||
Программа выполняет следующие задачи:
|
Программа выполняет следующие задачи:
|
||||||
|
|
||||||
1. Подключается к PostgreSQL БД (primary/secondary)
|
1. Подключается к PostgreSQL БД (primary/secondary fallback)
|
||||||
2. Определяет instance текущего хоста по hostname
|
2. Определяет instances текущего хоста по hostname
|
||||||
3. Получает биндинги для данного instance из таблицы `apps_settings`
|
3. Для каждого клиента определяет WAF-вендор (PTAF или SolidWall)
|
||||||
4. Группирует биндинги по `client_title`
|
4. **Для PTAF-клиентов:**
|
||||||
5. Для каждого клиента:
|
- Проверяет наличие Docker-образа, при необходимости скачивает
|
||||||
- Получает данные из БД или через API (server_name, aliases, origins)
|
|
||||||
- Выделяет свободные порты для контейнеров
|
- Выделяет свободные порты для контейнеров
|
||||||
- Генерирует конфигурационные файлы Angie
|
- Генерирует конфигурационные файлы Angie и Nginx
|
||||||
- Создает директории для контейнеров
|
- Создаёт docker-compose.yml и запускает контейнеры
|
||||||
- Генерирует конфигурационные файлы Nginx для контейнеров
|
- Управляет graceful drain при масштабировании и миграции
|
||||||
- Генерирует docker-compose.yml файлы
|
5. **Для SolidWall-клиентов:**
|
||||||
- Запускает контейнеры через docker-compose
|
- Генерирует конфигурационные файлы solidwall-nginx
|
||||||
|
- Выполняет reload solidwall-nginx при изменениях
|
||||||
|
6. Поддерживает идемпотентность — повторный запуск без изменений в БД не вносит изменений
|
||||||
|
|
||||||
|
## Конфигурация
|
||||||
|
|
||||||
|
Конфигурационный файл: `/etc/magos/magos.env`
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# База данных
|
||||||
|
DB_USER=login
|
||||||
|
DB_PASSWORD=password
|
||||||
|
DB_NAME=waf_info
|
||||||
|
DB_PORT=5432
|
||||||
|
PRIMARY_DB_HOST=10.100.10.8
|
||||||
|
SECONDARY_DB_HOST=10.100.13.5
|
||||||
|
|
||||||
|
# Docker-образ PTAF (глобальный)
|
||||||
|
DOCKER_IMAGE=ptaf-core-nginx-agent:release-4.3.1.431839-debian-bullseye-nginx-1.28.0
|
||||||
|
DOCKER_IMAGE_URL=https://example.com/image.tar
|
||||||
|
|
||||||
|
# Параметры Nginx
|
||||||
|
WORKER_PROCESSES=4
|
||||||
|
WORKER_CONNECTIONS=64000
|
||||||
|
```
|
||||||
|
|
||||||
|
## Требования к хосту
|
||||||
|
|
||||||
|
Для корректной работы на PTAF-хостах необходимо зарезервировать диапазон портов:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Добавить в /etc/sysctl.conf
|
||||||
|
net.ipv4.ip_local_reserved_ports=18000-23999
|
||||||
|
|
||||||
|
# Применить немедленно
|
||||||
|
sysctl -w net.ipv4.ip_local_reserved_ports=18000-23999
|
||||||
|
```
|
||||||
|
|
||||||
## Подробности
|
## Подробности
|
||||||
|
|
||||||
Изучить как работает программа можно в файле ARCHITECTURE.md.
|
Изучить как работает программа можно в файле **ARCHITECTURE.md**.
|
||||||
|
|
||||||
Посмотреть зависимость работы программы от БД в файле DATABASE_SCHEMA.md
|
Посмотреть зависимость работы программы от БД в файле **DATABASE_SCHEMA.md**.
|
||||||
|
|
||||||
|
## Диагностика
|
||||||
|
|
||||||
|
### Lock-файл завис
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Просмотреть PID
|
||||||
|
cat /var/lock/ptaf-main.lock
|
||||||
|
|
||||||
|
# Если процесс не существует — magos удалит lock автоматически при следующем запуске
|
||||||
|
# Если процесс завис — завершить вручную
|
||||||
|
kill {PID} && rm /var/lock/ptaf-main.lock
|
||||||
|
```
|
||||||
|
|
||||||
|
### Переназначить порты контейнера
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rm /home/install/ptaf/{clientTitle}/{clientTitle}-ptaf-agent*/.ports.json
|
||||||
|
# При следующем запуске magos порты будут перевыделены
|
||||||
|
```
|
||||||
|
|
||||||
|
### Принудительно пересоздать контейнер
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Удалить контейнер — magos создаст новый при следующем запуске
|
||||||
|
docker-compose -f /home/install/ptaf/{clientTitle}/{clientTitle}-ptaf-agent001/docker-compose.yml down
|
||||||
|
```
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue