-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathindex.html
More file actions
224 lines (202 loc) Β· 12.4 KB
/
index.html
File metadata and controls
224 lines (202 loc) Β· 12.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<!DOCTYPE html>
<html lang="en"><head>
<title>pyinfra - Fast Python Infrastructure Automation & Configuration Management Tool</title>
<meta charset="utf-8" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Language" content="en" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="pyinfra is a fast, Python-based infrastructure automation and configuration management tool. Deploy to SSH servers, Docker containers, and local machines. 10x faster than Ansible with declarative operations." />
<meta name="keywords" content="pyinfra, python infrastructure automation, configuration management, DevOps automation, infrastructure as code, IaC, server provisioning, deployment automation, ansible alternative, python devops, SSH automation, docker automation, terraform integration, agentless automation, infrastructure deployment, IT automation, server configuration, declarative infrastructure, python configuration management, fast deployment tool" />
<meta name="author" content="pyinfra">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://pyinfra.com">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://pyinfra.com" />
<meta property="og:title" content="pyinfra - Fast Python Infrastructure Automation Tool" />
<meta property="og:description" content="Fast, Python-based infrastructure automation. Deploy to SSH servers, Docker, and local machines. 10x faster than Ansible." />
<meta property="og:image" content="https://pyinfra.com/static/logo_readme.png" />
<meta property="og:site_name" content="pyinfra">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="https://pyinfra.com">
<meta name="twitter:title" content="pyinfra - Fast Python Infrastructure Automation Tool">
<meta name="twitter:description" content="Fast, Python-based infrastructure automation. Deploy to SSH servers, Docker, and local machines. 10x faster than Ansible.">
<meta name="twitter:image" content="https://pyinfra.com/static/logo_readme.png">
<!-- Preconnect for performance -->
<link rel="preconnect" href="https://stats.oxygem.com">
<link rel="dns-prefetch" href="https://stats.oxygem.com">
<!-- Stylesheets -->
<link rel="stylesheet" type="text/css" href="static/github.css">
<link rel="stylesheet" type="text/css" href="static/pyinfra.css">
<!-- Favicon -->
<link rel="shortcut icon" href="static/logo_small.png" type="image/x-icon">
<link rel="icon" href="static/logo_small.png" type="image/x-icon">
<link rel="apple-touch-icon" href="static/logo_small.png">
<!-- Structured Data for SEO -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "pyinfra",
"applicationCategory": "DeveloperApplication",
"operatingSystem": "Linux, macOS, Windows",
"description": "Fast Python-based infrastructure automation and configuration management tool for deploying to SSH servers, Docker containers, and local machines.",
"url": "https://pyinfra.com",
"image": "https://pyinfra.com/static/logo_readme.png",
"softwareVersion": "3.x",
"author": {
"@type": "Organization",
"name": "pyinfra",
"url": "https://pyinfra.com"
},
"programmingLanguage": "Python"
}
</script>
</head>
<body>
<header>
<div class="container">
<div class="logo-wrapper">
<img src="static/logo_readme.png" alt="pyinfra - Python Infrastructure Automation Tool Logo" width="100%">
</div>
<nav role="navigation" aria-label="Main navigation">
</nav>
</div>
</header>
<section id="content">
<div class="container">
<div id="markup">
<article id="content" class="markdown-body">
<h1 class="visually-hidden">pyinfra - Python Infrastructure Automation</h1>
<p class="big hero-text">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.</p>
<p class="big comparison-text">Think <code>ansible</code> but Python instead of YAML, and <strong>up to 10x faster</strong>.</p>
</article>
</div>
</div>
<div class="container">
<div>
<h2 class="features-heading">Why Choose pyinfra?</h2>
<article class="markdown-body">
<ul class="features">
<li><strong><i aria-hidden="true">π</i> Super Fast Execution</strong> Deploy to thousands of targets with predictable performance. Up to 10x faster than Ansible.</li>
<li><strong><i aria-hidden="true">π¨</i> Instant Debugging</strong> Get realtime output from shell commands with no abstraction layer for immediate troubleshooting.</li>
<li><strong><i aria-hidden="true">π</i> Declarative Operations</strong> Only make changes when needed with built-in diff checking and idempotent operations.</li>
<li><strong><i aria-hidden="true">π¦</i> Fully Extendable</strong> Leverage the entire Python package ecosystem. Write inventory and operations in pure Python.</li>
<li><strong><i aria-hidden="true">π»</i> Agentless Architecture</strong> Deploy to any system with POSIX shell access. Zero dependencies on target systems.</li>
<li><strong><i aria-hidden="true">π</i> Seamless Integration</strong> Pull inventory from Terraform, execute against Docker containers, integrate with your DevOps toolchain.</li>
</ul>
</article>
</div>
</div>
<div class="container buttons">
<a class="button" href="https://docs.pyinfra.com/page/getting-started.html" aria-label="Get started with pyinfra documentation">Getting Started</a>
<a class="button" href="https://github.com/pyinfra-dev/pyinfra-examples" aria-label="View pyinfra code examples on GitHub">Examples Repo</a>
</div>
<!-- Code Example Section -->
<div class="container-wide">
<div class="code-example-section">
<h2 class="features-heading">See It In Action</h2>
<p class="section-intro">Write infrastructure automation in pure Python. No YAML, no DSL, just Python code.</p>
<div class="code-example-wrapper">
<div class="code-example">
<div class="code-header">
<span class="code-file">deploy.py</span>
</div>
<pre><code><span class="code-comment"># Install and configure nginx</span>
<span class="code-keyword">from</span> pyinfra.operations <span class="code-keyword">import</span> apt, systemd
apt.packages(
name=<span class="code-string">"Install nginx"</span>,
packages=[<span class="code-string">"nginx"</span>],
)
systemd.service(
name=<span class="code-string">"Restart and enable the nginx service"</span>,
service=<span class="code-string">"nginx.service"</span>,
running=<span class="code-string">True</span>,
restarted=<span class="code-string">True</span>,
enabled=<span class="code-string">True</span>,
)
</code></pre>
</div>
<div class="code-benefits">
<h3>Simple, Powerful, Pythonic</h3>
<ul>
<li><strong>No new syntax to learn</strong> If you know Python, you know pyinfra.</li>
<li><strong>Full Python capabilities</strong> Use loops, conditions, functions, and <em>any Python library</em>.</li>
<li><strong>Type hints & IDE support</strong> Get autocomplete and inline documentation.</li>
<li><strong>Instant feedback</strong> See exactly what commands run on your servers in real-time.</li>
</ul>
</div>
</div>
</div>
</div>
<!-- Community Section -->
<div class="container-wide">
<div class="community-section">
<h2 class="features-heading">Join the Community</h2>
<div class="community-grid">
<div class="community-card">
<div class="community-icon">π¬</div>
<h3>Get Support</h3>
<p>Join our active Matrix chat for help, discussions, and to connect with other pyinfra users and contributors.<br /> </p>
<a href="https://matrix.to/#/#pyinfra:matrix.org" class="community-link">Join Chat β</a>
</div>
<div class="community-card">
<div class="community-icon">π</div>
<h3>Read the Docs</h3>
<p>Comprehensive documentation with guides, API references, and examples to help you get started and master pyinfra.</p>
<a href="https://docs.pyinfra.com" class="community-link">View Docs β</a>
</div>
<div class="community-card">
<div class="community-icon">π€</div>
<h3>Contribute</h3>
<p>pyinfra is open source and welcomes contributions. Report bugs, suggest features, or contribute code on GitHub.</p>
<a href="https://github.com/pyinfra-dev/pyinfra" class="community-link">View on GitHub β</a>
</div>
</div>
</div>
</div>
<!-- FAQ Section -->
<div class="container">
<div class="faq-section">
<h2 class="features-heading">Frequently Asked Questions</h2>
<div class="faq-grid">
<div class="faq-item">
<h3>Is pyinfra production-ready?</h3>
<p>Yes! pyinfra is battle-tested and used by companies worldwide to manage production infrastructure. It has a stable API and comprehensive test coverage.</p>
</div>
<div class="faq-item">
<h3>Can I migrate from Ansible?</h3>
<p>Absolutely. Many teams have successfully migrated from Ansible to pyinfra. The concepts are similar, but the Python-based approach offers more flexibility and better performance.</p>
</div>
<div class="faq-item">
<h3>Does it work with Windows?</h3>
<p>pyinfra targets POSIX-compatible systems. While you can run pyinfra from Windows (via WSL), target systems should be Linux, macOS, or Unix-based systems.</p>
</div>
<div class="faq-item">
<h3>How does it handle secrets?</h3>
<p>pyinfra integrates with popular secret management tools. You can use environment variables, encrypted files, or integrate with HashiCorp Vault, AWS Secrets Manager, etc.</p>
</div>
<div class="faq-item">
<h3>Can I use existing Python packages?</h3>
<p>Yes! That's one of pyinfra's biggest advantages. You can import and use any Python package in your deployment scripts, from requests to boto3 to custom libraries.</p>
</div>
<div class="faq-item">
<h3>What's the performance overhead?</h3>
<p>Minimal. pyinfra uses efficient SSH multiplexing and parallel execution. It can manage thousands of servers simultaneously with low resource usage and predictable performance.</p>
</div>
</div>
</div>
</div>
<div class="container buttons">
<a class="button" href="https://docs.pyinfra.com/page/getting-started.html" aria-label="Get started with pyinfra documentation">Getting Started</a>
<a class="button" href="https://github.com/pyinfra-dev/pyinfra-examples" aria-label="View pyinfra code examples on GitHub">Examples Repo</a>
</div>
</section>
<footer role="contentinfo">
<div class="container">
<p class="footer-text">Open source infrastructure automation for developers who love Python. Licensed under MIT.</p>
</div>
</footer>
<script async defer data-domain="pyinfra.com" src="https://stats.oxygem.com/js/index.js"></script>
</body></html>