Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pyinfra-dev/pyinfra
pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations. Target SSH servers, local machine and Docker containers. Fast and scales from one server to thousands.
https://github.com/pyinfra-dev/pyinfra
cloud-management configuration-management high-performance infrastructure pyinfra python remote-execution
Last synced: 10 days ago
JSON representation
pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations. Target SSH servers, local machine and Docker containers. Fast and scales from one server to thousands.
- Host: GitHub
- URL: https://github.com/pyinfra-dev/pyinfra
- Owner: pyinfra-dev
- License: mit
- Created: 2014-10-19T19:37:45.000Z (about 10 years ago)
- Default Branch: 3.x
- Last Pushed: 2024-05-13T10:22:27.000Z (6 months ago)
- Last Synced: 2024-05-20T01:14:51.251Z (6 months ago)
- Topics: cloud-management, configuration-management, high-performance, infrastructure, pyinfra, python, remote-execution
- Language: Python
- Homepage: https://pyinfra.com
- Size: 20.9 MB
- Stars: 3,442
- Watchers: 39
- Forks: 347
- Open Issues: 168
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Support: docs/support.md
Awesome Lists containing this project
- best-of-python - GitHub - 22% open · ⏱️ 27.05.2024): (Infrastructure & DevOps)
- awesome-repositories - pyinfra-dev/pyinfra - pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations. Target SSH servers, local machine and Docker containers. Fast and (Python)
- jimsghstars - pyinfra-dev/pyinfra - pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations. Target SSH servers, local machine and Docker containers. Fast and (Python)
README
pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations. Target SSH servers, local machine and Docker containers. Fast and scales from one server to thousands. Thinkansible
but Python instead of YAML, and a lot faster.---
Getting Started •
Examples Repo •
Chat on Matrix
Documentation •
Help & Support •
Contributing---
Why pyinfra? Design features include:
+ 🚀 **Super fast** execution over thousands of hosts with predictable performance.
+ 🚨 **Instant debugging** with realtime stdin/stdout/stderr output (`-vvv`).
+ 🔄 **Idempotent operations** that enable diffs and dry runs before making changes.
+ 📦 **Extendable** with the entire Python package ecosystem.
+ 💻 **Agentless execution** against anything with shell access.
+ 🔌 **Integrated** with connectors for Docker, Terraform, Vagrant and more.## Quickstart
Install pyinfra with `pip`:
```
pip install pyinfra
```Now you can execute commands on hosts via SSH:
```sh
pyinfra my-server.net exec -- echo "hello world"
```Or target Docker containers, the local machine, and other [connectors](https://docs.pyinfra.com/page/connectors.html):
```sh
pyinfra @docker/ubuntu exec -- echo "Hello world"
pyinfra @local exec -- echo "Hello world"
```As well as executing commands you can define state using [operations](https://docs.pyinfra.com/page/operations.html):
```sh
# Install iftop apt package if not present
pyinfra @docker/ubuntu apt.packages iftop update=true _sudo=true
```Which can then be saved as a Python file like `deploy.py`:
```py
from pyinfra.operations import aptapt.packages(
name="Ensure iftop is installed",
packages=['iftop'],
update=True,
_sudo=True,
)
```The hosts can also be saved in a file, for example `inventory.py`:
```py
targets = ["@docker/ubuntu", "my-test-server.net"]
```And executed together:
```sh
pyinfra inventory.py deploy.py
```Now you know the building blocks of pyinfra! By combining inventory, operations and Python code you can deploy anything.
See the more detailed [getting started](https://docs.pyinfra.com/page/getting-started.html) or [using operations](https://docs.pyinfra.com/page/using-operations.html) guides. See how to use [inventory & data](https://docs.pyinfra.com/page/inventory-data.html), [global arguments](https://docs.pyinfra.com/page/arguments.html) and [the CLI](https://docs.pyinfra.com/page/cli.html) or check out the [documented examples](https://docs.pyinfra.com/page/examples.html).
---