computer system

클라우드 어플리케이션 관리 - Fabric with python

hongiiv 2012. 11. 23. 23:23
반응형
클라우드에는 스냅샷과 커스텀 이미지를 이용해서 관리자가 소프트웨어 인스톨이나 설정 및 시스템관리를 편리하게 할 수 있도록 도와준다. 하지만, 자주 변경되거나 시시각각으로 서로 다른 설정을 해줘야 하는 경우 (특히나 이쪽 분야는...)가 흔하디 흔하기 때문에 이러한 클라우드의 장점을 이용하기 보다는 걍 하나하나 설치/설정/관리를 해주는게 지금 나의 상황에서는 더 편리하다.

가령 10대의 서버에는 A라는 묶음의 소프트웨어를 설치/설정하고 20대의 서버에는 B라는 묶음의 소프트웨어를 설치/설정하고 3대에는 A라는 묶음+알파 또는 -알파의 설정이 필요한 경우가 비일비재하다는 것이다. 그렇다면 해결책은 바로 Fabric이라는 파이썬 라이브러리를 이용하면 된다.  잠시 나의  Fabric 설정을 살펴보면 다음과 같은 구조로 되어 있다.

Bioinformatics_common (모든 서버에 기본/필수적으로 설치되어야하는 프로그램 목록)
-build-essential
-gcc
-g++
-git-core
-mercurial
-subversion
-unzip
-python-pip

Bioinformatics_A (NGS 분석에 따른 프로그램 목록)
... 

Bioinformatics_B (GWAS분석에 따른 프로그램 목록)
....

그외 필요에 따라 프로젝트의 특성에 따라 deploy될 S/W의 목록을 설정 파일로 주욱 만들어 놓고, Fabric을 사용

fab -f fabric_install.py -i /root/.ssh/id_dsa -H 노드1 노드2 노드3 노드4 노드5 Bioinformatics_common Bioinformatics_A
fab -f <Fabric으로_만들어_놓은_프로그램.py> -i <private_key_file> -H <설치할_노드_목록> <설치할 패키지>


요렇게 하면 노드5개에 자동으로 미리 지정된 S/W들이 주루룩 설치되고 설정까지 마무리된다. 클라우드 환경에서 이러한 deploy를 위한 툴들이 많이 있지만, 걍 Fabric으로 쓱삭~~~ 자주 변경되고 세세한 설정까지 원한다면, 더불어 파이썬이 좋다면 Fabric을 써보는 것도 좋을...

위의 우분투 패키지외에도 별도의 리파지토리를 만들어 놓고 해당 리파지토리에서 S/W나 설정 파일을 받아서 추가적으로 설치/설정하도록 해놓고 쓰면 효과는 만점 즉, 1) 우분투 패키지 2) 나만의 S/W를 위한 리파지토리 구축 3) Fabric을 이용한 파이썬 프로그램 작성 4) 실행!! 5) Deploy 끝. 
반응형