Базовая настройка Apache AirFlow

Оцените статью

Подготовка Active Directory

  • Создаем системного пользователя который будет авторизовываться в Active Directory
  • Создаем группу члены которой смогут использовать AirFlow

Пример интеграции с Active Directory

Добавляем в файл airflow.cfg папаметры в секцию [webserver]:

authenticate = True
auth_backend = airflow.contrib.auth.backends.ldap_auth
rbac = True

Выносим webserver_config.py из Docker Compose во внешний файл:

...
  volumes:
    - ${AIRFLOW_PROJ_DIR:-.}/dags:/opt/airflow/dags
    - ${AIRFLOW_PROJ_DIR:-.}/logs:/opt/airflow/logs
    - ${AIRFLOW_PROJ_DIR:-.}/plugins:/opt/airflow/plugins
    - ${AIRFLOW_PROJ_DIR:-.}/airflow.cfg:/opt/airflow/airflow.cfg
    - ${AIRFLOW_PROJ_DIR:-.}/webserver_config.py:/opt/airflow/webserver_config.py
...

Конфигурация webserver_config.py для интеграции с Active Directory:

from __future__ import annotations

import os

# from airflow.www.fab_security.manager import AUTH_DB
from airflow.www.fab_security.manager import AUTH_LDAP

basedir = os.path.abspath(os.path.dirname(__file__))

# Flask-WTF flag for CSRF
WTF_CSRF_ENABLED = True
WTF_CSRF_TIME_LIMIT = None

AUTH_TYPE = AUTH_LDAP
#AUTH_TYPE = AUTH_DB

AUTH_LDAP_SERVER = 'ldap://10.77.77.250:389'

AUTH_LDAP_SEARCH = 'DC=gefest,DC=local'
AUTH_LDAP_UID_FIELD = 'sAMAccountName'
AUTH_LDAP_ALLOW_SELF_SIGNED = True
AUTH_LDAP_BIND_USER = 'CN=airflow_smsfinance,OU=Service Users,OU=IT,OU=SmsFinance,DC=gefest,DC=local'
AUTH_LDAP_BIND_PASSWORD = 'xxxPASSWORDxxx'

AUTH_USER_REGISTRATION = True

AUTH_ROLES_MAPPING = {
    "CN=airflow-super-users,OU=Groups,OU=IT,OU=SmsFinance,DC=gefest,DC=local": ["Admin"],
    "CN=airflow-users,OU=Groups,OU=IT,OU=SmsFinance,DC=gefest,DC=local": ["Viewer"],
}

AUTH_LDAP_GROUP_FIELD = "memberOf"
AUTH_ROLES_SYNC_AT_LOGIN = True
PERMANENT_SESSION_LIFETIME = 1800

Настройка отправки почты из Air Flow

Пример конфигурации AirFlow.cfg

[smtp]
smtp_host = 10.77.77.101
smtp_starttls = True
smtp_ssl = False
smtp_user = airflow_smsfinance
smtp_password = xxxPASSWORDxxx
smtp_port = 25
smtp_mail_from = airflow_smsfinance@smsfinance.ru
smtp_timeout = 30
smtp_retry_limit = 5

Похожие записи

Запуск Concourse Worker без использования Docker

Как запустить Concourse в Docker я уже писал в заметке «Установка и начало работы с Concourse CI«, но использовать докер совершенно не обязательно и можно запустить любой из компонентов как…

Установка и начало работы с Concourse CI

В рамках текущего проекта нам необходимо реализовать CI для выливки приложений, а так-как мы решили не использовать GitLab (для наших задач это большой оверхэд) и используем Gitea то естественно возник…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Как проверить работу камеры в Ubuntu Linux: диагностика USB и встроенных веб-камер

Как проверить работу камеры в Ubuntu Linux: диагностика USB и встроенных веб-камер

Полное руководство по установке Docker, Docker Compose, kubectl, Helm и k9s в Linux

Полное руководство по установке Docker, Docker Compose, kubectl, Helm и k9s в Linux

Настройка маршрутизации через VipNet: пошаговое руководство для RedOS

Настройка маршрутизации через VipNet: пошаговое руководство для RedOS