사용자 도구

사이트 도구


devops:fabric

Fabric

  • Fabric : SSH를 통해 멀티 서버 배포와 시스템 관리를 수행하는 명령행 툴. Python 기반.

명령행 인자

  • 즉석 다중 서버 명령 실행기
    # fabfile.py가 없어도
    fab -H 호스트목록,.. -- 실행할 명령
     
    # fabfile.py가 있다면
    fab -R 롤,.. -- 실행할 명령

import

# 아래 명령으로 Operations, ContextManagers, Decorators, Utils 가 모두 import 된다.
from fabric.api import *

host 지정

env.hosts = ['hostname', 'username@hostname2:33']

Multiprocessing

  • Python 2.6 버전 대의 경우 기본 라이브러리에 버그가 있으므로 2.6.3 이상을 사용할 것.
  • 2.5 이하에서는 pypi multiprocessing 패키지를 설치해서 사용할 것

shell 변경

  • env.shell의 기본값인 /bin/bash -l -c를 다른 값으로 변경하면 다른 종류의 셸을 사용할 수 있고, -l 옵션을 빼서 로그인 셸이 아닌 일반 셸로 처리할 수도 있다.
  • Ubuntu Server의 경우(현재 12.04) .bashrc의 맨 앞에 있는 [ -z “$PS1” ] && return 코드 때문에 fabric에서 명령 실행시 .bashrc의 환경변수가 설정이 안된다. .profile에 환경변수를 설정할 것.

현재 실행중인 태스크가 바라보는 host정보

env.host # hostname만 있음
env.host_string # 설정에 지정한 username@host:port 형태의 문자열

이 값은 태스크 밖에서는 None이다.

Parallel 병렬실행

  • 여러 호스트에 대해 명령을 실행할 때 병렬로 실행하도록 할 수 있다.
  • -P : 명령행 병렬실행 옵션
  • @parallel : 메소드에 데코레이터를 추가해 지정가능.
devops/fabric.txt · 마지막으로 수정됨: 2021/03/21 21:45 저자 kwon37xi