사용자 도구

사이트 도구


build_deploy_management:fabric

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
build_deploy_management:fabric [2013/04/30 16:03]
kwon37xi
build_deploy_management:fabric [2021/03/21 21:45]
kwon37xi 제거됨
줄 1: 줄 1:
 ====== Fabric ====== ====== Fabric ======
   * [[http://docs.fabfile.org/|Fabric]] : SSH를 통해 멀티 서버 배포와 시스템 관리를 수행하는 명령행 툴. [[:python|Python]] 기반.   * [[http://docs.fabfile.org/|Fabric]] : SSH를 통해 멀티 서버 배포와 시스템 관리를 수행하는 명령행 툴. [[:python|Python]] 기반.
 +  * [[https://github.com/ronnix/fabtools|fabtools]]
 +
 +===== 명령행 인자 =====
 +  * 즉석 다중 서버 명령 실행기<code sh>
 +# fabfile.py가 없어도
 +fab -H 호스트목록,.. -- 실행할 명령
 +
 +# fabfile.py가 있다면
 +fab -R 롤,.. -- 실행할 명령
 +</code>
 +
 +===== import =====
 +<code python>
 +# 아래 명령으로 Operations, ContextManagers, Decorators, Utils 가 모두 import 된다.
 +from fabric.api import *
 +</code>
  
 ===== host 지정 ===== ===== host 지정 =====
-  * <code python>env.hosts = ['hostname', 'username@hostname2']</code>+<code python>env.hosts = ['hostname', 'username@hostname2:33']</code>
  
 ===== Multiprocessing ===== ===== Multiprocessing =====
줄 11: 줄 27:
 ===== shell 변경 ===== ===== shell 변경 =====
   * ''env.shell''의 기본값인 ''/bin/bash -l -c''를 다른 값으로 변경하면 다른 종류의 셸을 사용할 수 있고, ''-l'' 옵션을 빼서 로그인 셸이 아닌 일반 셸로 처리할 수도 있다.   * ''env.shell''의 기본값인 ''/bin/bash -l -c''를 다른 값으로 변경하면 다른 종류의 셸을 사용할 수 있고, ''-l'' 옵션을 빼서 로그인 셸이 아닌 일반 셸로 처리할 수도 있다.
 +  * Ubuntu Server의 경우(현재 12.04) ''.bashrc''의 맨 앞에 있는 ''[ -z "$PS1" ] && return'' 코드 때문에 fabric에서 명령 실행시 ''.bashrc''의 환경변수가 설정이 안된다. ''.profile''에 환경변수를 설정할 것.
  
 ===== 현재 실행중인 태스크가 바라보는 host정보 ===== ===== 현재 실행중인 태스크가 바라보는 host정보 =====
줄 17: 줄 34:
 env.host_string # 설정에 지정한 username@host:port 형태의 문자열 env.host_string # 설정에 지정한 username@host:port 형태의 문자열
 </code> </code>
 +이 값은 태스크 밖에서는 None이다.
 +
 +===== Parallel 병렬실행 =====
 +  * 여러 호스트에 대해 명령을 실행할 때 병렬로 실행하도록 할 수 있다.
 +  * ''-P'' : 명령행 병렬실행 옵션
 +  * ''@parallel'' : 메소드에 데코레이터를 추가해 지정가능.
 +