Fabric에 오신 것을 환영합니다!

옷감이란 무엇입니까?

Fabric은 SSH를 통해 원격으로 쉘 명령을 실행하여 유용한 Python 개체를 생성하도록 설계된 고급 Python(2.7, 3.4+) 라이브러리입니다.

>>> from fabric import Connection
>>> result = Connection('web1.example.com').run('uname -s', hide=True)
>>> msg = "Ran {0.command!r} on {0.connection.host}, got stdout:\n{0.stdout}"
>>> print(msg.format(result))
Ran 'uname -s' on web1.example.com, got stdout:
Linux

이것은 Invoke (하위 프로세스 명령 실행 및 명령줄 기능) 및 Paramiko (SSH 프로토콜 구현) 상호 보완하고 추가 기능을 제공하기 위해 이들의 API를 확장한다.

그것은 어떻게 사용되었는가?

스위칭 매트릭스의 핵심 활용 사례는 다음과 같습니다(이에 국한되지 않음).

  • 단일 호스트의 단일 명령:

    >>> result = Connection('web1').run('hostname')
    web1
    >>> result
    <Result cmd='hostname' exited=0>
    
  • 여러 호스트에 걸쳐 단일 명령(직렬, 병렬 등)

    >>> from fabric import SerialGroup
    >>> result = SerialGroup('web1', 'web2').run('hostname')
    web1
    web2
    >>> # Sorting for consistency...it's a dict!
    >>> sorted(result.items())
    [(<Connection host=web1>, <Result cmd='hostname' exited=0>), ...]
    
  • 각 연결에 대한 Python 코드 블록(함수/메소드):

    >>> def disk_free(c):
    ...     uname = c.run('uname -s', hide=True)
    ...     if 'Linux' in uname.stdout:
    ...         command = "df -h / | tail -n1 | awk '{print $5}'"
    ...         return c.run(command, hide=True).stdout.strip()
    ...     err = "No idea how to get disk space on {}!".format(uname)
    ...     raise Exit(err)
    ...
    >>> print(disk_free(Connection('web1')))
    33%
    
  • 여러 호스트의 Python 코드 블록:

    >>> # NOTE: Same code as above!
    >>> def disk_free(c):
    ...     uname = c.run('uname -s', hide=True)
    ...     if 'Linux' in uname.stdout:
    ...         command = "df -h / | tail -n1 | awk '{print $5}'"
    ...         return c.run(command, hide=True).stdout.strip()
    ...     err = "No idea how to get disk space on {}!".format(uname)
    ...     raise Exit(err)
    ...
    >>> for cxn in SerialGroup('web1', 'web2', 'db1'):
    ...    print("{}: {}".format(cxn, disk_free(cxn)))
    <Connection host=web1>: 33%
    <Connection host=web2>: 17%
    <Connection host=db1>: 2%
    

이러한 라이브러리 지향 사용 사례 외에도 Fabric은 Invoke의 명령줄 작업 기능과 쉽게 통합할 수 있습니다. fab 바이너리 스텁:

  • Python 함수, 메서드 또는 전체 개체를 CLI 주소 지정 작업으로 사용할 수 있습니다(예: fab deploy ;

  • 작업은 자신이 실행하기 전이나 후에 실행할 다른 작업(작업 이전 또는 이후)을 나타낼 수 있습니다.

  • 작업은 일반적인 GNU 스타일의 매개변수를 통해 매개변수화됩니다. 예를 들면 다음과 같습니다. fab deploy --env=prod -d ;

  • 단일 CLI 세션에서 여러 작업을 수행할 수 있습니다(예: fab build deploy ;

  • 더 중요한 사항 - 다른 모든 호출 기능 지원 - 을 참조하십시오. its documentation 자세한 내용을 확인하십시오.

Fabric 1의 사용자입니다. 어떻게 업그레이드합니까?

Dell은 Fabric 1과 함께 설치할 수 있도록 현대식 Fabric을 패키지화하여 사용 사례에 필요한 속도에 따라 업그레이드할 수 있습니다.가능한 여러 가지 방법이 있습니다. detailed upgrade documentation 자세한 내용을 확인하십시오.

이게 무슨 사이트죠?

www.fabfile.org 변경 로그, 기여 가이드, 개발 로드맵, 뉴스/블로그 등과 같은 Fabric의 프로젝트 정보를 제공합니다.

자세한 개념적 및 API 문서는 저희 코드 문서 사이트에서 찾을 수 있으며, docs.fabfile.org 바로 그거야.