Airflow 설치 방법에는 크게 두가지가 있다.
1. docker compose로 쉽고 간단하게 설치하기 -> https://iambeginnerdeveloper.tistory.com/322
2. 가상환경 내에 airflow 설치하여 환경 셋팅하기
이번엔 가상환경 내에 airflow를 설치하는 방법을 정리 하려고 한다.
1. 가상환경 생성
python3.10 -m venv env-airflow
2. airflow 설치
pip install apache-airflow
3. airflow 명령어 및 config 확인
airflow

cfg는 airflow 설정 파일로 airflow.cfg 파일 내용을 아래 명령어로 확인 가능하다.
airflow config list
4. DB 초기화
→ airflow에서 사용하는 db는 meta data를 넣기 위해서 기본으로 sqlite를 제공한다.
→ 이후에 mysql, postgresql로 변경해 진행하면 된다.
# db 초기화
airflow db reset --yes
# migration
airflow db migrate

→ migrate : 새 데이터베이스라면 migrate가 init 역할
→ reset : 기존 스키마, 데이터 삭제 후 재생성
sqlite3 /root/airflow/airflow.db ".tables" | grep session
→ db table에 session이 생성 되어 있으면 제대로 migration 된 것이다.
5. 유저 계정 생성
Airflow 3.x 버전부터는 기본 인증 매니저로 SimpleAuthManager가 설정되어 있어서 Flask-AppBuilder(FAB) 기반의 users, roles 등의 CLI 그룹이 로드 되지 않는다.
# FAB Provider 설치
pip install apache-airflow-providers-fab
→ 이 패키지가 Flask-AppBuilder 기반 인증, 사용자 관리를 담당
# airflow.cfg 설정 변경
export AIRFLOW__CORE__AUTH_MANAGER=airflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager
source ~/.bashrc
airflow users list
airflow users create --username "username" --password "passwd" --firstname "firstname" --lastname "lastname" --role Admin --email "email"

- -username : 로그인 ID (필수)
- -password : 비밀번호 (필수)
- -firstname : 이름 (필수)
- -lastname : 성 (필수)
- -role : 사용자 역할
- 기본 제공 역할: Admin, User, Op, Viewer 등
- -email : 이메일 주소 (필수)
6. Webwerver 시작
airflow api-server --port 8080
→ default port : 8080

→ docker container 내부에서 작업 중이라면 container의 8080 port가 포워딩 되어 있어야 한다.
7. scheduler 실행
airflow scheduler
# background에서 실행
airflow scheduler --daemon
8. airflow 접속 확인
http://localhost:8080으로 접속 시 아래와 같이 로그인 창이 뜨면 로그인을 해 주면 된다.

