Обзор развертывания Apache Airflow на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры системы и сетевые настройки:
-
Операционная система: Debian (Bookworm) или Ubuntu.
-
Версия Python: 3.10.
-
База данных: PostgreSQL.
-
Порты:
-
Внутренний порт веб-интерфейса:
8080 -
Внешний порт для доступа через HTTPS:
443
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | airflow |
| Домен | hostkey.in |
| Полный шаблон | airflow{Server_ID_from_Invapi}.hostkey.in |
Процесс установки приложения¶
Процесс развертывания включает в себя установку системных зависимостей, настройку среды Python и запуск сервисов через систему управления службами.
-
Обновление системы: Выполняется обновление списков пакетов APT и обновление всех установленных компонентов до актуальных версий.
-
Установка системных зависимостей: Устанавливаются необходимые библиотеки (включая
libssl-dev,libffi-dev,sqlite3,curlи др.) и инструменты для работы с базами данных и сетевыми протоколами. -
Настройка Python окружения:
-
Для систем на базе Ubuntu/Debian Bullseye: установка через
pip. -
Для Debian Bookworm: использование
pipxв изолированном окружении/opt/pipxдля обеспечения стабильности системы. -
Установка Apache Airflow: Устанавливается версия
2.10.1с поддержкой Celery. -
Инициализация базы данных: Выполняется миграция базы данных через команду
airflow db migrate. -
Создание администратора: В системе автоматически создается пользователь
adminдля доступа к веб-интерфейсу.
Права доступа и безопасность¶
-
Пользователь сервисов: Веб-сервер и планировщик работают от имени пользователя
root(в рамках системных служб). -
Брандмауэр: Доступ открыт на стандартный HTTPS порт (
443). -
Безопасность Python: На новых версиях Ubuntu используется флаг
--break-system-packagesдля корректной работы пакетов в системном окружении.
Базы данных¶
Приложение использует PostgreSQL в качестве основного хранилища метаданных. Инициализация структуры таблиц происходит на этапе развертывания через механизм миграций.
Контейнеры Docker и их запуск¶
Для обеспечения работы HTTPS используется контейнерная среда, управляющая SSL-сертификатами:
| Параметр | Значение |
|---|---|
| Имя образа | jonasal/nginx-certbot:latest |
| Режим сети | host |
| Политика перезапуска | unless-stopped |
| Тома (volumes) | nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d |
| Переменные окружения | CERTBOT_EMAIL=hkadm@hostkey.com |
Контейнер отвечает за автоматическое получение и обновление SSL-сертификатов через Certbot для обеспечения защищенного соединения.
Инструкция по обновлению приложения¶
Для обновления основного компонента Apache Airflow необходимо:
-
Обновить пакеты через менеджер пакетов или переустановить версию через
pip/pipx. -
Выполнить команду миграции базы данных для применения изменений в схеме:
Расположение конфигурационных файлов и данных¶
-
Конфигурация Nginx:
/root/nginx/compose.yml,/data/nginx/user_conf.d -
Секреты SSL:
nginx_secrets(внешний Docker volume) -
Переменные окружения Nginx:
/data/nginx/nginx-certbot.env
Доступные порты для подключения¶
-
443(HTTPS) — основной порт доступа к веб-интерфейсу через прокси. -
8080(HTTP) — внутренний порт веб-сервера Airflow.