본문 바로가기
OS/Linux

[Linux] PostgreSQL, Airflow 및 OS 계정 연동

by Yoon_estar 2025. 2. 18.
728x90

🚀 개요

이 문서에서는 Python 3.10.14 PostgreSQL 13.18을 활용하여 Apache Airflow 2.7.3을 설치한 후 OS 계정, PostgreSQL, Apach Airflow 세 개의 계정을 연동하는 과정을 설명한 글입니다. 


 

💡 1. 사전 준비

2025.02.04 - [OS/Linux] - [Linux] Airflow & PostgreSQL 13.18 설치 및 설정 매뉴얼 (Python 3.10.14 환경)

 

이전 포스팅 한 글을 통하여 Airflow, PostgreSQL, python 환경을 구축하면 됩니다. 


🚧PostgreSQL, Airflow 및 OS 계정 연동

 

1️⃣ PostgreSQL 사용자 및 데이터베이스 생성

# su - postgres
$ psql

CREATE DATABASE airflow_db;
CREATE USER estar987 WITH PASSWORD 'root///';
GRANT ALL PRIVILEGES ON DATABASE airflow_db TO estar987;

\q(ctrl + d)

 

2️⃣ OS 계정과 PostgreSQL 계정 연동

  • OS 사용자 생성
# sudo useradd -m -s /bin/bash estar987
# sudo passwd estar987

 

  • PostgreSQL에서 OS 계정과 동일한 이름의 계정 생성
# su - postgres
$ psql

CREATE ROLE estar987 LOGIN ENCRYPTED PASSWORD 'root///';
ALTER ROLE estar987 CREATEDB;
GRANT ALL PRIVILEGES ON DATABASE airflow_db TO estar987;
\q (ctrl + d)

3️⃣ Airflow 초기화 및 기본 설정

  • Airflow 초기화
# source /APP/enhpc/profile.d/python-v3.10.14

 

  • 기존 설정 초기화(장애 발생 시)
# rm -rf ~/airflow
# mkdir -p ~/airflow/dags ~/airflow/logs ~/airflow/plugins

 

  • Airflow 데이터베이스 초기화
# airflow db init

 

4️⃣ Airflow 관리자 계정 생성

# airflow users create \
    --username estar987 \
    --password root/// \
    --firstname Admin \
    --lastname User \
    --role Admin \
    --email estar987@example.com

 

5️⃣ Airflow 웹 서버 및 스케줄러 실행

# airflow webserver --port 8787 &
# airflow scheduler --port &

 


🖥️Airflow 웹 UI에서 PostgreSQL 연결 설정

  1. 브라우저에서 http://localhost:8787로 접속합니다.
  2. **Admin 계정(admin/admin123)**으로 로그인합니다.
  3. Admin > Connections로 이동합니다.
  4. + 버튼을 눌러 새로운 연결 추가:
    • Conn Id: postgres_default
    • Conn Type: Postgres
    • Host: localhost
    • Schema: airflow_db
    • Login: estar987
    • Password: root///
    • Port: 5432

데이터 입력및 검증

  1. Airflow UI에서 테스트 DAG 생성 후 실행합니다.
  2. PostgreSQL 데이터베이스에 정상적으로 데이터가 저장되는지 확인합니다
# su - postgres
# psql -d airflow_db -U estar987

SELECT * FROM dag_run;
\q

⚠️ Troubleshooting

1️⃣ 로그인 실패 시 조치 사항

  • 비밀번호 재설정
# airflow users update \
    --username admin \
    --password root///
  • Airflow 재시작
# pkill -f "airflow webserver"
# pkill -f "airflow scheduler"

# airflow webserver --port 8787 &
# airflow scheduler &
  • 로그 파일 확인
# tail -f ~/airflow/logs/airflow-webserver.log
# tail -f ~/airflow/logs/airflow-scheduler.log