Apache Airflow auf Ubuntu 24.04 installieren: Schritt-für-Schritt-Anleitung

Apache Airflow ist eine Open-Source-Plattform zur Verwaltung von Workflows und eignet sich ideal zur Automatisierung von Datenprozessen wie ETL (Extract, Transform, Load). Die Plattform verwendet sogenannte Directed Acyclic Graphs (DAGs) in Python, um Aufgaben zu planen und Abhängigkeiten zuverlässig zu verwalten. Diese Anleitung zeigt, wie du Apache Airflow unter Ubuntu 24.04 einrichtest, absicherst und mit einem Beispiel-DAG testest.

Voraussetzungen

  • Ein Ubuntu 24.04 Server mit mindestens 4 GB RAM
  • Ein A-Record, der auf die IP-Adresse deines Servers verweist

Apache Airflow unter Ubuntu 24.04 installieren

Airflow wird als Python-Paket angeboten und lässt sich über Pip installieren. Im Folgenden installierst du Python, richtest eine virtuelle Umgebung ein und installierst Airflow.

1. Schritt: Paketindex aktualisieren

2. Schritt: Python-Version prüfen

Beispielausgabe:

Python 3.12.3

3. Schritt: Python installieren (falls erforderlich)

$ sudo apt install python3

4. Schritt: Virtuelle Umgebung und Abhängigkeiten installieren

$ sudo apt install python3-venv libpq-dev -y

5. Schritt: Virtuelle Umgebung erstellen und aktivieren

$ python3 -m venv airflow_env
$ source ~/airflow_env/bin/activate

Die Shell-Eingabeaufforderung sollte sich wie folgt ändern:

(airflow_env) linuxuser@example:~$

6. Schritt: Apache Airflow mit PostgreSQL-Unterstützung installieren

$ pip install apache-airflow[postgres] psycopg2

7. Schritt: PostgreSQL installieren

$ sudo apt install postgresql postgresql-contrib
$ sudo systemctl start postgresql

8. Schritt: PostgreSQL für Airflow konfigurieren

Beispielausgabe:

psql (16.6 (Ubuntu 16.6-0ubuntu0.24.04.1))
Type “help” for help.
postgres=#

postgres=# CREATE USER airflow PASSWORD 'YourStrongPassword';
postgres=# CREATE DATABASE airflowdb;
postgres=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO airflow;
postgres=# ALTER DATABASE airflowdb OWNER TO airflow;
postgres=# GRANT ALL ON SCHEMA public TO airflow;
postgres=# exit;

9. Schritt: Airflow konfigurieren

$ nano ~/airflow/airflow.cfg

Falls das Verzeichnis ~/airflow nicht existiert, erstelle es mit:

$ airflow db init; airflow scheduler

Drücke Strg + C, um den Scheduler zu stoppen.

Passe in airflow.cfg folgende Werte an:

executor = LocalExecutor
sql_alchemy_conn = postgresql+psycopg2://airflow:YourStrongPassword@localhost/airflowdb

10. Schritt: Datenbank initialisieren

Beispielausgabe:

DB: postgresql+psycopg2://airflow:***@localhost/airflow

[2025-01-05T23:58:36.808+0000] {migration.py:207} INFO – Context impl PostgresqlImpl.
[2025-01-05T23:58:36.809+0000] {migration.py:210} INFO – Will assume transactional DDL.
INFO [alembic.runtime.migration] Running stamp_revision -> 5f2621c13b39
WARNI [airflow.models.crypto] empty cryptography key – values will not be stored encrypted.
Initialization done

11. Schritt: Admin-Benutzer erstellen

$ airflow users create \
  --username admin \
  --password yourSuperSecretPassword \
  --firstname Admin \
  --lastname User \
  --role Admin \
  --email admin@example.com

12. Schritt: Airflow-Dienste starten

Starte den Webserver auf Port 8080 und leite Logs in webserver.log um:

$ nohup airflow webserver -p 8080 > webserver.log 2>&1 &

Starte den Scheduler und schreibe Logs in scheduler.log:

$ nohup airflow scheduler > scheduler.log 2>&1 &

Nginx als Reverse Proxy für Apache Airflow einrichten

Standardmäßig lauscht Apache Airflow auf Port 8080. Um die Anwendung über HTTP oder HTTPS erreichbar zu machen und abzusichern, kannst du Nginx als Reverse Proxy nutzen.

1. Schritt: Nginx installieren

$ sudo apt install -y nginx

2. Schritt: Nginx-Konfigurationsdatei für Airflow erstellen

$ sudo nano /etc/nginx/sites-available/airflow

Füge den folgenden Inhalt in die Datei ein (ersetze airflow.example.com durch deine Domain):

server {
  listen 80;
  server_name airflow.example.com;

  location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

Diese Konfiguration leitet alle Anfragen auf Port 80 über die angegebene Domain an den Airflow-Port 8080 weiter.

3. Schritt: Virtuellen Host aktivieren

$ sudo ln -s /etc/nginx/sites-available/airflow /etc/nginx/sites-enabled/

4. Schritt: Nginx-Konfiguration testen und neu laden

Erwartete Ausgabe:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

$ sudo systemctl reload nginx

5. Schritt: Port 80 in der Firewall freigeben

$ sudo ufw allow 80/tcp
$ sudo ufw reload

Öffne nun im Browser die URL http://airflow.example.com, um das Login-Interface von Apache Airflow aufzurufen.

Apache Airflow mit HTTPS absichern (SSL-Zertifikat einrichten)

Um die Verbindung zum Apache Airflow Webinterface zu verschlüsseln, kannst du mit Certbot ein kostenloses SSL-Zertifikat von Let’s Encrypt erstellen und Nginx damit konfigurieren.

1. Schritt: Certbot installieren

$ sudo snap install --classic certbot

Falls Snap noch nicht vorhanden ist, installiere es mit folgendem Befehl:

$ sudo apt install snapd -y

2. Schritt: Certbot global verfügbar machen

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

3. Schritt: SSL-Zertifikat anfordern

Ersetze airflow.example.com und admin@example.com mit deiner echten Domain und Mailadresse.

$ sudo certbot --nginx --redirect -d airflow.example.com -m admin@example.com --agree-tos

Beispielausgabe:

...
Konto registriert.
Zertifikat wird für airflow.example.com angefordert
Zertifikat erfolgreich erhalten.
Zertifikat gespeichert unter: /etc/letsencrypt/live/airflow.example.com/fullchain.pem
Schlüssel gespeichert unter: /etc/letsencrypt/live/airflow.example.com/privkey.pem
Dieses Zertifikat läuft am 2025-04-21 ab.
Es wird automatisch verlängert.
Zertifikat wurde erfolgreich in /etc/nginx/sites-enabled/airflow eingebunden.
Glückwunsch! HTTPS ist nun aktiv unter https://airflow.example.com

4. Schritt: Automatische Verlängerung testen

$ sudo certbot renew --dry-run

5. Schritt: Nginx neu starten

$ sudo systemctl restart nginx

Apache Airflow Webinterface aufrufen

Rufe die Airflow-Weboberfläche in deinem Browser auf:

https://airflow.example.com

Verwende die zuvor angelegten Zugangsdaten:

  • Benutzername: admin
  • Passwort: yourSuperSecretPassword

Eigenen DAG in Apache Airflow erstellen und starten

Erstelle einen einfachen DAG (Directed Acyclic Graph), um den Ablauf zu testen und zu automatisieren.

1. Schritt: DAG-Verzeichnis anlegen

2. Schritt: Beispiel-DAG-Datei erstellen

$ nano ~/airflow/dags/my_first_dag.py

3. Schritt: Python-Code für DAG hinzufügen

from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime, timedelta

with DAG(
    'my_first_dag',
    start_date=datetime(2024, 1, 1),
    schedule_interval=timedelta(days=1),
    catchup=False
) as dag:
    def print_hello():
        print('Greetings from centron')

    hello_task = PythonOperator(
        task_id='hello_task',
        python_callable=print_hello
    )

Dieser Code definiert einen DAG namens my_first_dag, der täglich ausgeführt wird und eine Grußnachricht ausgibt.

Schritt 4: DAG im Webinterface aktivieren

Wechsle in der Airflow-Oberfläche zur DAG-Übersicht, aktiviere den my_first_dag und starte ihn manuell.

Schritt 5: DAG überwachen

Nutze die Graph-Ansicht und das Ereignisprotokoll in der Benutzeroberfläche von Airflow, um den Ablauf zu überwachen.

Fazit

Du hast Apache Airflow erfolgreich auf Ubuntu 24.04 installiert, den Zugriff mit Nginx und SSL abgesichert und einen Beispiel-DAG eingerichtet. Airflow bietet dir flexible Möglichkeiten zur Workflow-Orchestrierung für deine Automatisierungsprojekte.

Für weiterführende Informationen empfiehlt sich die offizielle Airflow-Dokumentation.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

VeraCrypt unter Ubuntu 24.04 installieren & nutzen

Security, Tutorial
VeraCrypt unter Ubuntu 24.04 installieren – Schritt-für-Schritt-Anleitung VeraCrypt ist eine kostenlose Open-Source-Verschlüsselungslösung, mit der sich vertrauliche Daten wie Dateien, Ordner und ganze Laufwerke absichern lassen. Um diese leistungsstarke Sicherheitssoftware optimal…