Skip to content

Commit 44a107b

Browse files
author
github-actions
committed
Docs build 2024-11-16
1 parent ba180ca commit 44a107b

File tree

8 files changed

+120
-4
lines changed

8 files changed

+120
-4
lines changed

en/latest/_sources/using-operations.rst.txt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,37 @@ Including files can be used to break out operations across multiple files. Files
227227
# Include & call all the operations in tasks/install_something.py
228228
local.include("tasks/install_something.py")
229229
230+
Additional data can be passed across files via the ``data`` param to parameterize tasks and is available in ``host.data``. For example `tasks/create_user.py` could look like:
231+
232+
.. code:: python
233+
234+
from getpass import getpass
235+
236+
from pyinfra import host
237+
from pyinfra.operations import server
238+
239+
group = host.data.get("group")
240+
user = host.data.get("user")
241+
242+
server.group(
243+
name=f"Ensure {group} is present",
244+
group=group,
245+
)
246+
server.user(
247+
name=f"Ensure {user} is present",
248+
user=user,
249+
group=group,
250+
)
251+
252+
And and be called by other deploy scripts or tasks:
253+
254+
.. code:: python
255+
256+
from pyinfra import local
257+
258+
for group, user in (("admin", "Bob"), ("admin", "Joe")):
259+
local.include("tasks/create_user.py", data={"group": group, "user": user})
260+
230261
See more in :doc:`examples: groups & roles <./examples/groups_roles>`.
231262

232263

en/latest/apidoc/pyinfra.local.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ <h3>Navigation</h3>
165165
<span id="pyinfra-local-module"></span><h1>pyinfra.local module<a class="headerlink" href="#module-pyinfra.local" title="Permalink to this heading"></a></h1>
166166
<dl class="py function">
167167
<dt class="sig sig-object py" id="pyinfra.local.include">
168-
<code class="sig-prename descclassname"><span class="pre">pyinfra.local.</span></code><code class="sig-name descname"><span class="pre">include</span></code><span class="sig-paren">(</span><em><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#pyinfra.local.include" title="Permalink to this definition"></a></dt>
168+
<code class="sig-prename descclassname"><span class="pre">pyinfra.local.</span></code><code class="sig-name descname"><span class="pre">include</span></code><span class="sig-paren">(</span><em><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#pyinfra.local.include" title="Permalink to this definition"></a></dt>
169169
<dd><p>Executes a local python file within the <code class="docutils literal notranslate"><span class="pre">pyinfra.state.cwd</span></code>
170170
directory.</p>
171171
</dd></dl>

en/latest/searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

en/latest/using-operations.html

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,33 @@ <h2>Include Multiple Files<a class="headerlink" href="#include-multiple-files" t
350350
<span class="n">local</span><span class="o">.</span><span class="n">include</span><span class="p">(</span><span class="s2">&quot;tasks/install_something.py&quot;</span><span class="p">)</span>
351351
</pre></div>
352352
</div>
353+
<p>Additional data can be passed across files via the <code class="docutils literal notranslate"><span class="pre">data</span></code> param to parameterize tasks and is available in <code class="docutils literal notranslate"><span class="pre">host.data</span></code>. For example <cite>tasks/create_user.py</cite> could look like:</p>
354+
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">getpass</span> <span class="kn">import</span> <span class="n">getpass</span>
355+
356+
<span class="kn">from</span> <span class="nn">pyinfra</span> <span class="kn">import</span> <span class="n">host</span>
357+
<span class="kn">from</span> <span class="nn">pyinfra.operations</span> <span class="kn">import</span> <span class="n">server</span>
358+
359+
<span class="n">group</span> <span class="o">=</span> <span class="n">host</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;group&quot;</span><span class="p">)</span>
360+
<span class="n">user</span> <span class="o">=</span> <span class="n">host</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;user&quot;</span><span class="p">)</span>
361+
362+
<span class="n">server</span><span class="o">.</span><span class="n">group</span><span class="p">(</span>
363+
<span class="n">name</span><span class="o">=</span><span class="sa">f</span><span class="s2">&quot;Ensure </span><span class="si">{</span><span class="n">group</span><span class="si">}</span><span class="s2"> is present&quot;</span><span class="p">,</span>
364+
<span class="n">group</span><span class="o">=</span><span class="n">group</span><span class="p">,</span>
365+
<span class="p">)</span>
366+
<span class="n">server</span><span class="o">.</span><span class="n">user</span><span class="p">(</span>
367+
<span class="n">name</span><span class="o">=</span><span class="sa">f</span><span class="s2">&quot;Ensure </span><span class="si">{</span><span class="n">user</span><span class="si">}</span><span class="s2"> is present&quot;</span><span class="p">,</span>
368+
<span class="n">user</span><span class="o">=</span><span class="n">user</span><span class="p">,</span>
369+
<span class="n">group</span><span class="o">=</span><span class="n">group</span><span class="p">,</span>
370+
<span class="p">)</span>
371+
</pre></div>
372+
</div>
373+
<p>And and be called by other deploy scripts or tasks:</p>
374+
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">pyinfra</span> <span class="kn">import</span> <span class="n">local</span>
375+
376+
<span class="k">for</span> <span class="n">group</span><span class="p">,</span> <span class="n">user</span> <span class="ow">in</span> <span class="p">((</span><span class="s2">&quot;admin&quot;</span><span class="p">,</span> <span class="s2">&quot;Bob&quot;</span><span class="p">),</span> <span class="p">(</span><span class="s2">&quot;admin&quot;</span><span class="p">,</span> <span class="s2">&quot;Joe&quot;</span><span class="p">)):</span>
377+
<span class="n">local</span><span class="o">.</span><span class="n">include</span><span class="p">(</span><span class="s2">&quot;tasks/create_user.py&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="n">group</span><span class="p">,</span> <span class="s2">&quot;user&quot;</span><span class="p">:</span> <span class="n">user</span><span class="p">})</span>
378+
</pre></div>
379+
</div>
353380
<p>See more in <a class="reference internal" href="examples/groups_roles.html"><span class="doc">examples: groups &amp; roles</span></a>.</p>
354381
</div>
355382
<div class="section" id="the-config-object">

en/next/_sources/using-operations.rst.txt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,37 @@ Including files can be used to break out operations across multiple files. Files
227227
# Include & call all the operations in tasks/install_something.py
228228
local.include("tasks/install_something.py")
229229
230+
Additional data can be passed across files via the ``data`` param to parameterize tasks and is available in ``host.data``. For example `tasks/create_user.py` could look like:
231+
232+
.. code:: python
233+
234+
from getpass import getpass
235+
236+
from pyinfra import host
237+
from pyinfra.operations import server
238+
239+
group = host.data.get("group")
240+
user = host.data.get("user")
241+
242+
server.group(
243+
name=f"Ensure {group} is present",
244+
group=group,
245+
)
246+
server.user(
247+
name=f"Ensure {user} is present",
248+
user=user,
249+
group=group,
250+
)
251+
252+
And and be called by other deploy scripts or tasks:
253+
254+
.. code:: python
255+
256+
from pyinfra import local
257+
258+
for group, user in (("admin", "Bob"), ("admin", "Joe")):
259+
local.include("tasks/create_user.py", data={"group": group, "user": user})
260+
230261
See more in :doc:`examples: groups & roles <./examples/groups_roles>`.
231262

232263

en/next/apidoc/pyinfra.local.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ <h3>Navigation</h3>
165165
<span id="pyinfra-local-module"></span><h1>pyinfra.local module<a class="headerlink" href="#module-pyinfra.local" title="Permalink to this heading"></a></h1>
166166
<dl class="py function">
167167
<dt class="sig sig-object py" id="pyinfra.local.include">
168-
<code class="sig-prename descclassname"><span class="pre">pyinfra.local.</span></code><code class="sig-name descname"><span class="pre">include</span></code><span class="sig-paren">(</span><em><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#pyinfra.local.include" title="Permalink to this definition"></a></dt>
168+
<code class="sig-prename descclassname"><span class="pre">pyinfra.local.</span></code><code class="sig-name descname"><span class="pre">include</span></code><span class="sig-paren">(</span><em><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#pyinfra.local.include" title="Permalink to this definition"></a></dt>
169169
<dd><p>Executes a local python file within the <code class="docutils literal notranslate"><span class="pre">pyinfra.state.cwd</span></code>
170170
directory.</p>
171171
</dd></dl>

en/next/searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

en/next/using-operations.html

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,33 @@ <h2>Include Multiple Files<a class="headerlink" href="#include-multiple-files" t
350350
<span class="n">local</span><span class="o">.</span><span class="n">include</span><span class="p">(</span><span class="s2">&quot;tasks/install_something.py&quot;</span><span class="p">)</span>
351351
</pre></div>
352352
</div>
353+
<p>Additional data can be passed across files via the <code class="docutils literal notranslate"><span class="pre">data</span></code> param to parameterize tasks and is available in <code class="docutils literal notranslate"><span class="pre">host.data</span></code>. For example <cite>tasks/create_user.py</cite> could look like:</p>
354+
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">getpass</span> <span class="kn">import</span> <span class="n">getpass</span>
355+
356+
<span class="kn">from</span> <span class="nn">pyinfra</span> <span class="kn">import</span> <span class="n">host</span>
357+
<span class="kn">from</span> <span class="nn">pyinfra.operations</span> <span class="kn">import</span> <span class="n">server</span>
358+
359+
<span class="n">group</span> <span class="o">=</span> <span class="n">host</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;group&quot;</span><span class="p">)</span>
360+
<span class="n">user</span> <span class="o">=</span> <span class="n">host</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;user&quot;</span><span class="p">)</span>
361+
362+
<span class="n">server</span><span class="o">.</span><span class="n">group</span><span class="p">(</span>
363+
<span class="n">name</span><span class="o">=</span><span class="sa">f</span><span class="s2">&quot;Ensure </span><span class="si">{</span><span class="n">group</span><span class="si">}</span><span class="s2"> is present&quot;</span><span class="p">,</span>
364+
<span class="n">group</span><span class="o">=</span><span class="n">group</span><span class="p">,</span>
365+
<span class="p">)</span>
366+
<span class="n">server</span><span class="o">.</span><span class="n">user</span><span class="p">(</span>
367+
<span class="n">name</span><span class="o">=</span><span class="sa">f</span><span class="s2">&quot;Ensure </span><span class="si">{</span><span class="n">user</span><span class="si">}</span><span class="s2"> is present&quot;</span><span class="p">,</span>
368+
<span class="n">user</span><span class="o">=</span><span class="n">user</span><span class="p">,</span>
369+
<span class="n">group</span><span class="o">=</span><span class="n">group</span><span class="p">,</span>
370+
<span class="p">)</span>
371+
</pre></div>
372+
</div>
373+
<p>And and be called by other deploy scripts or tasks:</p>
374+
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">pyinfra</span> <span class="kn">import</span> <span class="n">local</span>
375+
376+
<span class="k">for</span> <span class="n">group</span><span class="p">,</span> <span class="n">user</span> <span class="ow">in</span> <span class="p">((</span><span class="s2">&quot;admin&quot;</span><span class="p">,</span> <span class="s2">&quot;Bob&quot;</span><span class="p">),</span> <span class="p">(</span><span class="s2">&quot;admin&quot;</span><span class="p">,</span> <span class="s2">&quot;Joe&quot;</span><span class="p">)):</span>
377+
<span class="n">local</span><span class="o">.</span><span class="n">include</span><span class="p">(</span><span class="s2">&quot;tasks/create_user.py&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="n">group</span><span class="p">,</span> <span class="s2">&quot;user&quot;</span><span class="p">:</span> <span class="n">user</span><span class="p">})</span>
378+
</pre></div>
379+
</div>
353380
<p>See more in <a class="reference internal" href="examples/groups_roles.html"><span class="doc">examples: groups &amp; roles</span></a>.</p>
354381
</div>
355382
<div class="section" id="the-config-object">

0 commit comments

Comments
 (0)