CI/CDワークフローからSSH経由でリモートサーバー上のコマンドを実行するGitHub Action。
- スター
- 6,044
- フォーク
- 558
- 未解決の Issue
- 166
- 最終コミット
- 7 日前
これは何?
pyinfraは、YAMLではなくPythonでサーバー設定やデプロイのロジックを記述できるインフラ自動化ツールです。複数のホストでシェルコマンドを一度だけ実行したり、パッケージのインストールやファイル管理などの宣言的な操作を定義したりできます。pyinfraはこれらをシェルコマンドに変換し、対象マシンで実行します。
対象には、SSHで接続するリモートサーバー、ローカルマシン、Dockerコンテナを指定できます。操作は冪等性があり、適用前に差分やドライランで変更内容を確認できます。デバッグ用に、詳細度フラグを指定して標準入力・標準出力・標準エラーの内容をリアルタイムで確認できます。
通常のPythonコードなので、デプロイスクリプト内でPythonの豊富なパッケージエコシステムを利用できます。エージェントレスで、対象マシンに必要なのはシェルアクセスだけです。また、Docker、Terraform、Vagrant用のコネクターも備えています。
主な機能
- 01YAMLではなくPythonコードでデプロイのロジックを記述できます。
- 02SSHホスト、ローカルマシン、Dockerコンテナで、アドホックなコマンドや宣言的な操作を実行できます。
- 03冪等性のある操作により、変更を適用する前に差分やドライランを確認できます。
- 04コマンドの出力をリアルタイムで確認できるため、失敗したステップのデバッグに役立ちます。
- 05エージェントレスで、対象マシンに必要なのはシェルアクセスだけです。
- 06Docker、Terraform、Vagrantのインベントリー用コネクターを利用できます。
ユースケース
- 単一のPythonコードベースから、複数のサーバーの設定やデプロイを行う。
- 複数のホストで同じシェルコマンドを一斉に実行する。
- 本番環境に変更を加える前に、ローカルのDockerコンテナでサーバー設定をテストする。
- YAMLではなくPythonを使って、Ansible風の自動化を行いたいチーム。
クイックスタート
- 1
uvでpyinfraをインストールする
uv tool install pyinfra - 2
SSHサーバーでコマンドを実行する
pyinfra my-server.net exec -- echo "hello world" - 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 の数値は毎日更新されます。
関連プロジェクト
宣言的な設定ファイルからクラウドやサービスのリソースを作成・変更・管理するIaC向けCLI。
OVHcloudのサービス、アカウント、Public Cloudリソースをターミナルから管理できる公式CLI。
kubectlをモデルにしたAPIを備え、同期・非同期(asyncio/trio)の両方に対応するKubernetes向けPythonクライアントライブラリ。
Linux上でClash / Mihomoのプロキシカーネルを実行するシェルベースのランナー。サブスクリプション管理、ノード選択、Tunモード、組み込みのdoctorコマンドに対応。
Kubernetes、Slurm、20以上のクラウドやGPUプロバイダーで、AIワークロードの実行・管理・スケールを一元的に行えるオープンソースシステム。