Tutorials  /  Ubuntu

Apache Airflow auf Ubuntu 24.04 installieren & absichern

Ccentron Redaktion · März 2025 ·7 Min. Lesezeit ·Ubuntu, Tutorial

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
VM

Passende Infrastruktur bei centron

Ubuntu-Server ohne eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

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

Konsole
$ sudo apt update

2. Schritt: Python-Version prüfen

Konsole
$ python3 --version

Beispielausgabe:

Python 3.12.3

3. Schritt: Python installieren (falls erforderlich)

Konsole
$ sudo apt install python3

4. Schritt: Virtuelle Umgebung und Abhängigkeiten installieren

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

5. Schritt: Virtuelle Umgebung erstellen und aktivieren

Konsole
$ 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

Konsole
$ pip install apache-airflow[postgres] psycopg2

7. Schritt: PostgreSQL installieren

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

8. Schritt: PostgreSQL für Airflow konfigurieren

Konsole
$ sudo -u postgres psql

Beispielausgabe:

psql (16.6 (Ubuntu 16.6-0ubuntu0.24.04.1))

Type "help" for help.

postgres=#

Code
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

Konsole
$ nano ~/airflow/airflow.cfg

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

Konsole
$ airflow db init; airflow scheduler

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

Passe in airflow.cfg folgende Werte an:

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

10. Schritt: Datenbank initialisieren

Konsole
$ airflow db init

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

Konsole
$ 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:

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

Starte den Scheduler und schreibe Logs in scheduler.log:

Konsole
$ 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

Konsole
$ sudo apt install -y nginx

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

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

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

Code
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

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

4. Schritt: Nginx-Konfiguration testen und neu laden

Konsole
$ sudo nginx -t

Erwartete Ausgabe:

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

nginx: configuration file /etc/nginx/nginx.conf test is successful

Konsole
$ sudo systemctl reload nginx

5. Schritt: Port 80 in der Firewall freigeben

Konsole
$ 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

Konsole
$ sudo snap install --classic certbot

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

Konsole
$ sudo apt install snapd -y

2. Schritt: Certbot global verfügbar machen

Konsole
$ 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.

Konsole
$ 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

Konsole
$ sudo certbot renew --dry-run

5. Schritt: Nginx neu starten

Konsole
$ 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

Konsole
$ mkdir ~/airflow/dags

2. Schritt: Beispiel-DAG-Datei erstellen

Konsole
$ nano ~/airflow/dags/my_first_dag.py

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

Python
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.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Ubuntu
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren