728x90
물리적으로 다른 서버에서 airflow를 설정 한 후 DB 초기화도 하고 Webserver 및 scheduler를 실행했는데 url을 통해 접속을 하려고 했으나 아래와 같이 접속이 안되어서 당황한 적이 있다.

이럴 땐 가장 먼저 확인 해야 할 것이 config이다.
1. config base url 수정
airflow.cfg 파일에서 base_url이 접속하고자 하는 IP로 제대로 작성이 되어 있는지 확인을 해 봐야 한다.
airflow config list
위 명령어를 통해 config를 확인 했을 때 [api]부분에서 base_url이 제대로 수정되었는지 확인 후 수정이 안되어 있다면 IP 수정을 해 주면 된다.
export AIRFLOW__API__BASE_URL=http://<IP>:8080
source ~/.bashrc
<IP>에 적절한 ip를 입력 해 주면 된다.
제대로 수정되었따면 airflow를 재 시작 해 주어야 한다.
pkill -f "airflow api-server"
pkill -f "airflow scheduler"
pkill -f "airflow dag-processor"
airflow api-server --daemon --host <IP> --port 8080
airflow scheduler --daemon
airflow dag-processor --daemon
2. db 초기화
이렇게 했는데도 제대로 접속이 안된다면 db migrate가 제대로 안 되었을 가능성이 높다.
# db 초기화
airflow db reset --yes
# migration
airflow db migrate

위와 같이 db를 초기화 해 주면 아래와 같이 명령어를 입력했을 때 db table에 session이 생성되어 있을 것이다.
sqlite3 /root/airflow/airflow.db ".tables" | grep session

db 초기화를 했기 때문에 users를 다시 만들어 준 후
airflow users create --username <username> --password <password> --firstname <firstname> --lastname <lastname> --role Admin --email <email>
다시 접속하면 제대로 접속이 될 것이다.


728x90