Repolode
pyinfra-dev

pyinfra-dev/pyinfra

Python으로 정의한 작업과 셸 명령을 SSH 서버, 로컬 머신, Docker 컨테이너에서 실행하는 인프라 자동화 도구입니다.

대체할 수 있는 제품:Ansible

스타
6,044
포크
558
열린 이슈
166
마지막 커밋
7일 전

어떤 프로젝트인가요?

pyinfra는 YAML 대신 Python으로 서버 구성과 배포 로직을 작성할 수 있는 인프라 자동화 도구입니다. 여러 호스트에서 일회성 셸 명령을 실행하거나 패키지 설치, 파일 관리 같은 선언형 작업을 정의할 수 있습니다. pyinfra는 이를 셸 명령으로 변환해 대상에서 실행합니다.

대상은 SSH로 연결하는 원격 서버, 로컬 머신 또는 Docker 컨테이너일 수 있습니다. 작업은 멱등성을 보장하므로 적용하기 전에 diff와 dry run으로 변경 사항을 확인할 수 있습니다. verbosity 플래그를 늘리면 디버깅에 유용한 stdin, stdout, stderr 출력을 실시간으로 확인할 수 있습니다.

일반적인 Python 코드이므로 배포 스크립트에서 더 넓은 Python 패키지 생태계를 활용할 수 있습니다. 대상에 셸 접근만 있으면 되는 에이전트리스 도구이며, Docker, Terraform, Vagrant용 커넥터도 포함합니다.

핵심 기능

  • 01YAML 대신 Python 코드로 배포 로직을 작성합니다.
  • 02SSH 호스트, 로컬 머신, Docker 컨테이너에서 일회성 명령이나 선언형 작업을 실행합니다.
  • 03멱등성 작업을 지원하며 변경 사항 적용 전에 diff와 dry run으로 확인할 수 있습니다.
  • 04실시간 명령 출력으로 실패한 단계를 디버깅할 수 있습니다.
  • 05에이전트리스 방식으로, 대상에 셸 접근만 있으면 됩니다.
  • 06Docker, Terraform, Vagrant 인벤토리용 커넥터를 제공합니다.

활용 사례

  • 하나의 Python 코드베이스로 여러 서버를 구성하고 배포합니다.
  • 여러 호스트에서 같은 셸 명령을 한 번에 실행합니다.
  • 프로덕션 환경에 적용하기 전에 로컬 Docker 컨테이너에서 서버 설정을 테스트합니다.
  • YAML 대신 Python을 사용해 Ansible 스타일의 자동화를 원하는 팀에 적합합니다.

빠른 시작

  1. 1

    uv로 pyinfra 설치하기

    uv tool install pyinfra
  2. 2

    SSH 서버에서 명령 실행하기

    pyinfra my-server.net exec -- echo "hello world"
  3. 3

    Docker 컨테이너에서 명령 실행하기

    pyinfra @docker/ubuntu exec -- echo "Hello world"

토픽

자주 묻는 질문

pyinfra은(는) 무엇인가요?
Python으로 정의한 작업과 셸 명령을 SSH 서버, 로컬 머신, Docker 컨테이너에서 실행하는 인프라 자동화 도구입니다. pyinfra는 YAML 대신 Python으로 서버 구성과 배포 로직을 작성할 수 있는 인프라 자동화 도구입니다. 여러 호스트에서 일회성 셸 명령을 실행하거나 패키지 설치, 파일 관리 같은 선언형 작업을 정의할 수 있습니다. pyinfra는 이를 셸 명령으로 변환해 대상에서 실행합니다.
pyinfra은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
pyinfra은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
pyinfra은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. pyinfra의 마지막 커밋은 2026년 10월 15일입니다.
pyinfra은(는) 어디에 사용할 수 있나요?
하나의 Python 코드베이스로 여러 서버를 구성하고 배포합니다. 여러 호스트에서 같은 셸 명령을 한 번에 실행합니다. 프로덕션 환경에 적용하기 전에 로컬 Docker 컨테이너에서 서버 설정을 테스트합니다. YAML 대신 Python을 사용해 Ansible 스타일의 자동화를 원하는 팀에 적합합니다.
pyinfra는 어떻게 설치하나요?
uv로 pyinfra 설치하기: uv tool install pyinfra SSH 서버에서 명령 실행하기: pyinfra my-server.net exec -- echo "hello world" Docker 컨테이너에서 명령 실행하기: pyinfra @docker/ubuntu exec -- echo "Hello world"
pyinfra은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/pyinfra-dev/pyinfra

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트