Fabric은 SSH 프로토콜을 기반으로 하는 Python 도구입니다. 기존 ssh/scp 방법에 비해 Python 구문으로 관리 명령을 작성하는 것이 더 읽기 쉽고 확장하기 쉽습니다.
공식 홈페이지 주소 : http://fabfile.org
설치
python 및 pip 관리 도구 설치 과정 생략
pip install fabric
설치 성공 여부 확인
Python 입력 편집 모드에서 코드를 입력하면 오류가 없으면
from fabric.api import local
fabric 버전 hello world
fabric 기본 파일 fabfile.py가 성공적으로 설치되었음을 의미합니다. 이 이름을 사용하고 싶지 않으면 -f 매개변수를 추가해야 합니다.
fabfile.py 파일 만들기
vim fabrile.py
코드 편집
#coding:utf-8 from fabric.api import local# def hello(): # local函数用来执行本地命令 local('echo "hello wolrd!"')
코드 실행
fab hello
fab -l을 통해 실행 가능한 작업을 볼 수 있습니다. 현재 hello 함수
가 실행 중입니다. 결과
[localhost] local: echo "hello world!" hello world! Done.
기존 유지 관리 방법:
$ ssh x.x.x.x 'uname -a' -- 输出略
Fabric 예:
$ cat fabfile.py
from fabric.api import run def uname(): run('uname -a')
$ fab -H x.x.x.x uname -- 输出略
직관적으로 보면 ssh 방식에 비해 코드를 많이 작성해야 할 것 같지만, ssh 방식을 기반으로 하면 중간에 할 수 있는 컨트롤 링크가 상대적으로 적습니다. 서비스가 시작되었는지 여부, 시작되지 않은 경우 시작 및 기타 작업을 수행합니다. SSH 명령형 접근 방식은 좀 더 까다롭습니다. (물론, 작동중인 머신에서 스크립트를 작성하고 ssh를 통해 호출할 수도 있습니다)
Fabric의 몇 가지 장점에 대해 이야기해 보겠습니다.
역할 정의
쉬운 코드 읽기
로컬 및 원격 작업을 캡슐화합니다(여전히 시스템/popen/ssh 작업을 직접 캡슐화해야 합니까?)
유연한 매개변수(호스트/역할 등을 동적으로 지정하고 멀티프로세싱 기반 동시 실행)
전체 로그 출력
위에 나열된 것처럼 실제로 일상 작업에는 기본적으로 유사한 캡슐화가 있지만 기성화된 성숙한 도구가 있으므로 사용하지 않으시겠습니까? 그것? 오른쪽.
일반적으로 사용되는 구성:
env.host — 물론 호스트 IP는 -H 매개변수를 지정할 수도 있습니다.
env.password — 비밀번호인 경우 무시하세요. 좋은 채널이 있습니다
env.roledefs - 역할 그룹화(예: {'web': ['x', 'y'], 'db': ['z']}
fab -l -- 사용 가능한 작업 표시(명령)
fab -H -- 호스트 지정, 쉼표로 구분된 여러 호스트 지원
fab -R -- 역할 지정, 여러 호스트 지원
fab -P > > >
local('pwd') — 로컬 명령 lcd('/tmp') - 로컬 디렉터리 전환 cd('/tmp') - 원격 디렉터리 전환 run('uname -a ') - 원격 명령 실행Sudo ('/ETC/Init.d/Nginx Start ') -원격 SUDO 종료, PTY 옵션 주의
<… 현지처럼? 오른쪽.
예 4: 여러 대상 서버
동일한 비밀번호 또는 수동 입력:$ cat fabfile.py
비밀번호가 다르거나 수동으로 입력하고 싶지 않은 경우(이 방법은 서버 그룹 역할을 하지 않음):
from fabric.api import * @task def nginx_start(): ''' nginx start ''' sudo('/etc/init.d/nginx start') @task def nginx_stop(): ''' nginx stop ''' sudo('/etc/init.d/nginx stop')
Python 자동 배포 도구인 Fabric의 간단한 시작 가이드에 대한 자세한 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!