Airflow DAG는 Jinja Macro 로 구현돼 있는, 사전 정의된 값들을 가져다가 사용함으로써 좀 더 다이나믹하게 구현할 수 있다. Airflow Macros reference 그 중에서도 execution_date 를 가장 자주 사용하게 되는데 이 매크로는 DagRun, TaskInstance 가 instantiated 될 때 값이 정해지면서 특정 인스턴스에 정해진 날짜 값을 갖게 해주기 때문에 추후 재작업 등을 하는데 용이하게 쓰인다. 그런데 이 […]
[JetBrains] 인터넷 안되는 환경에서 플러그인 설치하기
동료들이 전부 jetbrains의 IDE를 사용하는데 나도 이제는 갈아타야될 때가 된 것 같아서 넘어가려는 중에 IdeaVim 플러그인 설치하는거에서 애를 좀 먹었다. Vim 덕후들은 텍스트 에디터나 IDE 같은 툴이 암만 좋다고 해도 Vim 키보드 에뮬레이션이 지원되는지가 가장 중요하다. 인터넷이 가능한 환경이라면 plugins 메뉴에서 간단히 버튼 클릭 만으로 플러그인을 설치할 수 있지만 인터넷이 없는 환경에서 오프라인으로 Jetbrains IDE […]
패스트캠퍼스 자바 인강 100% 환급 챌린지 도전 시작
패스트 캠퍼스 100% 환급 챌린지 도전을 위해 주소만 만들어놨던 티스토리에 드디어 글을 쓰게 됐다. 사실 잘 쓰고 있는 워드프레스에다가 포스팅할 생각으로 챌린지 신청한 거였는데.. 네이버/티스토리/깃헙페이지 중에 등록하는 것만 가능하다고 공지가 와서 살짝 아쉽다. 그나마 예전에 블로그 플랫폼으로 쓰려고 고민했던 곳이기도 해서 한번 체험해보고자 티스토리를 선택했는데 마크다운으로만 글을 쓰다가 일반 에디터로 쓰는게 어색하긴 하지만 클립보드에 복사한 […]
[Python] JPype로 Java 라이브러리 가져다 쓰기
JPype를 이용하면 python 에서 java 라이브러리를 이용할 수 있다. 기존 프로젝트에서 자바로 만들어놓은게 있고 굳이 파이썬으로 다시 만들어 쓸 시간이 없을때 jpype를 유용하게 쓰고있는데, 성능 이슈가 없는 작업이나 후딱 치워버리고싶은 일회성 작업을 하는데 진짜 도움이 많이 된다. 암복호화같은것들? java는 python 보다는 오래전부터 인기가 있던 언어여서 그런지 인터넷을 뒤져보면 java로 만들어진 라이브러리는 있는데 python 버전은 없는 […]
[network] 폐쇄망 로컬 환경에서 CA-signed SSL 인증서 이용하기 (“trusted” self-signed certificate)
로컬 개발 환경을 production 환경과 맞춰서 secure 통신으로 세팅을 해놓으면, https 를 비롯해서, 기본적으로는 여러 경고 문구들과 마주할 수밖에 없다. 웹브라우저라면 몇번의 클릭으로 넘어갈 수도 있겠지만 여러 서버 모듈이 있다면 서로간의 통신에서 검증 단계를 스킵하는 코드를 심어야하는 번거로운 작업이 많이 발생할 수도 있다. 이런 귀찮은 일들을 줄이고 시각적인 만족감을 위해서는 로컬 환경을 "신뢰받는" 환경으로 만들어버리면 […]
[nginx] reverse proxy & SSL offload 설정
nginx 설치 curl https://nginx.org/download/nginx-1.19.1.tar.gz | tar xz cd nginx-1.19.1 && ./configure –prefix=/usr/local/nginx –with-http_ssl_module make && make install reverse proxy 및 SSL offload 설정 cd /usr/local/nginx 경로로 이동해서 vim conf/airflow.conf 설정파일을 다음과 같이 만들어준다. events { use epoll; multi_accept on; worker_connections 4096; } http { server { listen 80; server_name airflow.centos.vm.oboki.net; root html; location / { […]
[Airflow] RBAC
RBAC; Role-Based Access Control 참고: https://airflow.apache.org/docs/stable/security.html#rbac-ui-security Airflow 1.10.9 버전 이후 Web UI가 Flask-Admin에서 Flask-Appbuilder 기반으로 변경되면서 RBAC를 활성화할 수 있다. 다음과 같이 다섯개의 Role 이 정의돼 있고 이 외에도 커스텀 롤을 생성할 수 있다. Admin Op User Viewer Public 각 Role들은 아래와 같은 형태의 권한들의 집합인데 세부 권한들은 다음과 같은 형태로 정의 돼 있어서 […]
[Windows] VMware vs. Docker for Windows
잘 쓰던 WSL 이 행이 걸리더니 복구도 되지 않고 삭제 해도 재설치가 제대로 되지 않았다. 급하게 리눅스 환경이 필요해서 오랜만에 VMware 를 설치했는데 다음과 같이 에러가 발생하면서 실행되지 않는다. VMware Workstation and Device/Credential Guard are not compatible. VMware Workstation can be run after disabling Device/Credential Guard. Please visit http://www.vmware.com/go/turnoff_CG_DG for more details. 이런 경우 cmd […]
[Airflow] 1.10.10 싱글 설치
rbac 기능을 이용하면 DAG-level Access Control 이 가능하다고 한다. 새롭게 추가된 tag 기능에 더해져서 tag-level 권한 관리도 됐으면 좋았겠지만.. rbac 기능을 이용하면 기본적 제공되는 롤 뿐만 아니라 Customized role 을 통해 가능해질 사용자 권한 관리를 기대하며 최신 1.10.10 버전을 설치해본다. 기존에 LDAP 연동해서 사용하던 Airflow 시스템을 업그레이드 해서 사용할 수 있을지 확인해보기 위해 OpenLDAP 환경을 […]
[Linux] OpenLDAP 설치
사내에 airflow를 ldap과 연동해서 사용하고 있는데 버전업을 하면서 신규 기능이랑 잘 호환이 될 지 확인하고자 부랴부랴 openldap 을 설치해봤다. 단순한 인증 DB? 서버? 라고 생각했는데 생각보다 어려운 개념이었다. LDAP 프로토콜에 대한 자세한(?) 설명은 아래 링크에서 잘 알려주는 것 같으니 참고. https://jabcholove.tistory.com/89 https://medium.com/happyprogrammer-in-jeju/ldap-%ED%94%84%ED%86%A0%ED%86%A0%EC%BD%9C-%EB%A7%9B%EB%B3%B4%EA%B8%B0-15b53c6a6f26 https://ldap.or.kr/ldap-%EC%9D%B4%EB%9E%80/ 조직도와 같은 계층 구조를 아래와 같은 트리 구조로 정의해놓고 특정 노드나 집합을 […]