해결된 질문
작성
·
153
0
안녕하세요
좋은 강의 감사드립니다.
섹션 7 custom operator 실습(마지막 강의) 16:11 부분에 보시면요
폴더 구조를 아래와 같이 만들어놓으셨더라고요
조금 이해가 안되는게, 왜 dags 폴더를 airflow 바깥에도 만들어놓시고 안에도 만들어놓으신거죠?
logs는 또 airflow 폴더 밖에 있고요.
강의 16:16 에 보면, dags는 airflow 안에 있는 것을 사용하고 계신것 같은데, (2) airflow 밖에 있는 dags 폴더를 만드신 이유, 그리고 (2) 왜 logs 폴더는 dags, plugins 와 다르게 airflow 밖에 만드셨는지 가 궁금합니다.
답변 1
1
안녕하세요 nathan 님
WSL 홈 디렉토리에 있는 dags, logs, plugins 폴더는 airflow 처음 설치시 가이드대로 진행하다보면 mkdir 명령을 통해서 만들어지는 디렉토리입니다.
반면 홈디렉토리에 있는 airflow 디렉토리는 git clone을 통해 만들어진 디렉토리입니다.
그리고 git pull을 통해 $HOME/airflow
디렉토리안에 우리가 만든 dags, plugins 등의 파일들이 저장되게 되죠.
따라서 $HOME 아래의 dags와 plugins, logs 폴더는 삭제해도 됩니다.
그리고 $HOME/logs
폴더 대신 $HOME/airflow/logs
폴더를 사용하도록 yaml 파일을 변경하시면 됩니다.
nathan님이 헷갈리신 이유도 충분히 이해가 갑니다 ^^
git을 통해서 우리가 만들고 있는 대상은 dags, files, plugins 디렉토리인 반면, logs 디렉토리는 git으로 배포하는 대상이 아니기 때문에 logs 디렉토리는 $HOME/logs 로 둔거에요.
사실 실제 현업에서는 git에 올린 대상을 서버에 배포할 때에는 jenkins같은 배포 도구를 별도로 이용합니다.
jenkins같은 배포 도구를 이용하면 우리가 git push 했을 때 필요한 작업들이 자동적으로 이뤄지도록 도와줍니다. (아래 작업들은 보통 shell 명령으로 직접 작성하고, 당연히 커스터마이징 가능합니다)
배포할 대상 서버에 있는 디렉토리를 백업
배포할 파일에 대한 전처리 작업(개발/운영 정보에 대한 반영)
배포할 디렉토리 지정
등의 작업을 세밀하게 지정할 수 있습니다.
지금 실습하고 있는 환경에 예시로 설명하자면
$HOME/dags
디렉토리는 $HOME/dags.old
로 백업
$HOME/plugins
디렉토리는 $HOME/plugins.old
로 백업
$HOME/files/sqls
디렉토리는 $HOME/files/sqls.old
로 백업
개발/운영 서버로 구분되어 있다면 파일 내 접속정보나 계정, 경로 등을 개발 or 운영에 맞게 치환 후
$HOME/dags
디렉토리로 git의 airflow/dags 디렉토리 배포
$HOME/plugins
디렉토리로 git의 airflow/plugins 디렉토리 배포
$HOME/files/sqls
디렉토리로 git의 airflow/files/sqls 디렉토리 배포
등의 작업을 입맛에 맞게 구성하게 되요.
지금 하고있는 실습에서는 jenkins 같은 배포툴을 별도로 사용하지 않고 $HOME/airflow 디렉토리 밑으로 단순히 git pull 받고 있는 상황이라 이 부분 감안하시면 되겠습니다.
이해 되셨을까요?