# Ansible vs pyinfra

| Attribute | Ansible | pyinfra |
|---|---|---|
| **Vioscale score** | 57.5 (61% (medium)) | 57.7 (69% (medium)) |
| activity.commits_last_30d | 22 | 13 |
| adoption.dependent_repos | 2,140 | 22 |
| adoption.github_stars | 70,473 | 5,965 |
| adoption.package_downloads_weekly | 2,699,011 | - |
| deployment.options | `{"cloud":true,"self_hosted":true}` | `{"self_hosted":true}` |
| description.long | Ansible is an open source IT automation engine that automates provisioning, configuration management, application deployment, orchestration, and many other IT processes. It is free to use, and the project benefits from the experience and intelligence of its thousands of contributors. | An infrastructure automation tool written in Python that runs commands over SSH on multiple servers concurrently and idempotently, without needing agents or configuration files. |
| features.capabilities | `{"open_source_core":true}` | `{"model":"push","hosting":"self","language":"Python","idempotent":true,"architecture":"agentless","desired_state":true,"masterless_mode":true,"open_source_core":true}` |
| integrations.count | 22 | - |
| integrations.list | `[{"name":"Terraform"},{"name":"VMware"},{"name":"ServiceNow"},{"name":"AWS"},{"name":"Microsoft Azure"},{"name":"Google Cloud Platform"},{"name":"Cisco"},{"name":"Juniper"},{"name":"F5"},{"name":"HPE"},{"name":"Dell Technologies"},{"name":"NetApp"},{"name":"SAP"},{"name":"Pure"},{"name":"Palo Alto Networks"},{"name":"CyberArk"},{"name":"HashiCorp Vault"},{"name":"Splunk"},{"name":"Dynatrace"},{"name":"Infoblox"},{"name":"Aruba"},{"name":"Windows"}]` | - |
| language.primary | Python | Python |
| license.spdx | GPL-3.0 | MIT |
| platform.support | `{"cli":true}` | `{"cli":true}` |
| pricing | `{"type":"hybrid","plans":[{"free":true,"name":"Ansible (Open Source)","description":"Free open-source project"},{"free":false,"name":"Red Hat Ansible Automation Platform","description":"Enterprise platform with security hardening and support","contactSales":true}],"summary":"Free open-source version or paid enterprise platform","freeTier":true,"sourceUrl":"https://www.ansible.com","retrievedAt":"2026-08-05T14:05:30.789Z"}` | `{"type":"open_source","freeTier":true,"sourceUrl":"https://pyinfra.com/","retrievedAt":"2026-08-13T22:42:42.751Z"}` |
| pricing.free_tier | yes | yes |
| pricing.model | commercial | commercial |
| pricing.price_level | low | free |
| pricing.transparent | - | yes |
| release.cadence_days | - | 34 |
| release.history | `[{"url":"https://github.com/ansible/ansible/releases/tag/v2.21.3","date":"2026-08-10T16:46:28Z","type":"stable","version":"v2.21.3"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.20.8","date":"2026-08-10T16:45:07Z","type":"stable","version":"v2.20.8"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.19.12","date":"2026-08-10T16:43:51Z","type":"stable","version":"v2.19.12"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.18.19","date":"2026-08-10T16:42:12Z","type":"stable","version":"v2.18.19"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.21.3rc1","date":"2026-08-03T22:47:24Z","type":"prerelease","version":"v2.21.3rc1"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.20.8rc1","date":"2026-08-03T22:46:13Z","type":"prerelease","version":"v2.20.8rc1"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.19.12rc1","date":"2026-08-03T22:35:50Z","type":"prerelease","version":"v2.19.12rc1"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.18.19rc1","date":"2026-08-03T22:35:39Z","type":"prerelease","version":"v2.18.19rc1"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.21.2","date":"2026-07-13T19:39:26Z","type":"stable","version":"v2.21.2"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.21.2rc1","date":"2026-07-06T18:32:45Z","type":"prerelease","version":"v2.21.2rc1"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.21.1","date":"2026-06-18T19:35:26Z","type":"stable","version":"v2.21.1"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.20.7","date":"2026-06-18T19:36:46Z","type":"stable","version":"v2.20.7"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.19.11","date":"2026-06-18T19:37:59Z","type":"stable","version":"v2.19.11"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.18.18","date":"2026-06-18T19:39:12Z","type":"stable","version":"v2.18.18"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.16.19","date":"2026-06-18T19:40:26Z","type":"stable","version":"v2.16.19"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.21.1rc1","date":"2026-06-11T19:29:45Z","type":"prerelease","version":"v2.21.1rc1"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.20.7rc1","date":"2026-06-11T19:31:04Z","type":"prerelease","version":"v2.20.7rc1"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.19.11rc1","date":"2026-06-11T19:32:36Z","type":"prerelease","version":"v2.19.11rc1"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.18.18rc1","date":"2026-06-11T19:33:53Z","type":"prerelease","version":"v2.18.18rc1"},{"url":"https://github.com/ansible/ansible/releases/tag/v2.16.19rc1","date":"2026-06-11T19:40:34Z","type":"prerelease","version":"v2.16.19rc1"}]` | `[{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.10.0","date":"2026-07-27T19:51:14Z","type":"stable","version":"v3.10.0"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.9.2","date":"2026-06-07T21:05:58Z","type":"stable","version":"v3.9.2"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.9.1","date":"2026-06-07T20:33:25Z","type":"stable","version":"v3.9.1"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.9.0","date":"2026-06-07T20:24:16Z","type":"stable","version":"v3.9.0"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.8.0","date":"2026-05-04T12:28:22Z","type":"stable","version":"v3.8.0"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.7","date":"2026-03-12T10:55:41Z","type":"stable","version":"v3.7"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.6.1","date":"2026-02-02T13:47:28Z","type":"stable","version":"v3.6.1"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.6","date":"2026-01-05T09:58:18Z","type":"stable","version":"v3.6"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.5.1","date":"2025-10-01T16:11:23Z","type":"stable","version":"v3.5.1"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.5","date":"2025-09-03T10:26:55Z","type":"stable","version":"v3.5"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.4.1","date":"2025-07-14T20:32:01Z","type":"stable","version":"v3.4.1"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.4","date":"2025-07-09T14:17:56Z","type":"stable","version":"v3.4"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.3.1","date":"2025-04-29T10:58:25Z","type":"stable","version":"v3.3.1"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.3","date":"2025-04-28T10:55:47Z","type":"stable","version":"v3.3"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.2","date":"2025-01-09T21:33:50Z","type":"stable","version":"v3.2"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.1.1","date":"2024-09-25T21:41:26Z","type":"stable","version":"v3.1.1"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.1","date":"2024-08-18T12:55:59Z","type":"stable","version":"v3.1"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.0.2","date":"2024-07-24T19:43:03Z","type":"stable","version":"v3.0.2"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.0.1","date":"2024-07-21T18:34:46Z","type":"stable","version":"v3.0.1"},{"url":"https://github.com/pyinfra-dev/pyinfra/releases/tag/v3.0","date":"2024-07-15T06:16:50Z","type":"stable","version":"v3.0"}]` |
| reliability.status_page | - | yes |
| security.scorecard | 7.5 | - |
| security.vulnerabilities | `{"count":7,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=ansible-core&per_page=100","last_12m":1,"max_severity":"HIGH"}` | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=pyinfra&per_page=100","last_12m":0,"max_severity":null}` |

## Capabilities (Configuration Management Tools)

| Capability | Ansible | pyinfra |
|---|:--:|:--:|
| **Core** |  |  |
| Architecture | - | Agentless / SSH-push |
| Push / pull model | - | Push |
| Config language | - | Python |
| **Deployment** |  |  |
| Masterless mode | - | ✓ |
| Hosting | - | Self-hosted only |
| **Correctness** |  |  |
| Idempotent | - | ✓ |
| **Model** |  |  |
| Desired-state declarative | - | ✓ |
| **Ecosystem** |  |  |
| Content registry | - | - |
| **Platform** |  |  |
| Windows support | - | - |
| **Scope** |  |  |
| Cloud provisioning | - | - |
| **Governance** |  |  |
| Policy / compliance | - | - |
| **Commercial** |  |  |
| Enterprise edition | - | - |
| **Licensing** |  |  |
| Open-source core | ✓ | ✓ |

*Source: Vioscale. Generated 2026-09-01T16:30:04.346Z. "-" = undocumented, not absent.*
