Перейти к содержанию

Обзор развертывания 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 и запуск сервисов через систему управления службами.

  1. Обновление системы: Выполняется обновление списков пакетов APT и обновление всех установленных компонентов до актуальных версий.

  2. Установка системных зависимостей: Устанавливаются необходимые библиотеки (включая libssl-dev, libffi-dev, sqlite3, curl и др.) и инструменты для работы с базами данных и сетевыми протоколами.

  3. Настройка Python окружения:

  4. Для систем на базе Ubuntu/Debian Bullseye: установка через pip.

  5. Для Debian Bookworm: использование pipx в изолированном окружении /opt/pipx для обеспечения стабильности системы.

  6. Установка Apache Airflow: Устанавливается версия 2.10.1 с поддержкой Celery.

  7. Инициализация базы данных: Выполняется миграция базы данных через команду airflow db migrate.

  8. Создание администратора: В системе автоматически создается пользователь 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 необходимо:

  1. Обновить пакеты через менеджер пакетов или переустановить версию через pip/pipx.

  2. Выполнить команду миграции базы данных для применения изменений в схеме:

    airflow db migrate
    

Расположение конфигурационных файлов и данных

  • Конфигурация 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.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×