diff --git a/en/3.x/.buildinfo b/en/3.x/.buildinfo
index 7f071f77..a02a0420 100644
--- a/en/3.x/.buildinfo
+++ b/en/3.x/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 553769cb09bd26734a1d1f0b73b811bb
+config: d07f8dc595accdbcd20e4d63574213b7
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/en/3.x/_sources/api/connectors.md.txt b/en/3.x/_sources/api/connectors.md.txt
index 4291ba0d..3ed6e870 100644
--- a/en/3.x/_sources/api/connectors.md.txt
+++ b/en/3.x/_sources/api/connectors.md.txt
@@ -86,3 +86,14 @@ class LocalConnector(BaseConnector):
bool: indicating success or failure.
"""
```
+
+## pyproject.toml
+
+In order for pyinfra to gain knowledge about your connector, you need to add the following snippet to your connector's `pyproject.toml`:
+
+```toml
+[project.entry-points.'pyinfra.connectors']
+# Key = Entry point name
+# Value = module_path:class_name
+custom = 'pyinfra_custom_connector.connector:LoggingConnector'
+```
diff --git a/en/3.x/_sources/api/deploys.md.txt b/en/3.x/_sources/api/deploys.md.txt
index 357d01ca..80d67de8 100644
--- a/en/3.x/_sources/api/deploys.md.txt
+++ b/en/3.x/_sources/api/deploys.md.txt
@@ -34,7 +34,7 @@ install_mariadb()
## Global Arguments
-Deploys accept the same [global arguments as as operations](../deploys.html#global-arguments) and they apply to every operation call within that deploy. Taking the above example:
+Deploys accept the same [global arguments as operations](../arguments) and they apply to every operation call within that deploy. Taking the above example:
```py
diff --git a/en/3.x/_sources/api/index.rst.txt b/en/3.x/_sources/api/index.rst.txt
index 74b5be56..d2faac8a 100644
--- a/en/3.x/_sources/api/index.rst.txt
+++ b/en/3.x/_sources/api/index.rst.txt
@@ -3,4 +3,64 @@ Using the API
In addition to :doc:`the pyinfra CLI <../cli>`, pyinfra provides a full Python API. As of ``v3`` this API can be considered mostly stable. See the :doc:`./reference`.
-`An example of how to use the API can be found here In order for pyinfra to gain knowledge about your connector, you need to add the following snippet to your connector’s Deploys accept the same global arguments as as operations and they apply to every operation call within that deploy. Taking the above example: Deploys accept the same global arguments as operations and they apply to every operation call within that deploy. Taking the above example: In addition to the pyinfra CLI, pyinfra provides a full Python API. As of An example of how to use the API can be found here. Note: this is not yet tested and pending future updates. You can also reference pyinfra’s own main.py, and the pyinfra API source code. A full example of how to use the API can be found here. (Note: this is not yet tested and is pending future updates) When using pyinfra inventory can be provided directly via the command line or defined in a file. Both support the full range of connectors and multiple hosts. Some CLI examples: When using pyinfra inventory can be provided directly via the command line or defined in a file. Both support the full range of connectors and multiple hosts. Some CLI examples: In general, the only requirement on the remote side is shell access. POSIX commands are used where possible for facts and operations, so most of the The move to Navigation
@@ -217,6 +220,16 @@
Executing Connector
+
pyproject.toml¶
+pyproject.toml
:[project.entry-points.'pyinfra.connectors']
+# Key = Entry point name
+# Value = module_path:class_name
+custom = 'pyinfra_custom_connector.connector:LoggingConnector'
+
Navigation
@@ -164,7 +166,7 @@
Examples
Global Arguments¶
-from packaged_deploy import install_mariadb
install_mariadb(sudo=True)
Navigation
@@ -129,7 +131,65 @@
Navigation
Using the API¶
v3
this API can be considered mostly stable. See the API Reference.Full Example¶
+Basic Localhost Example¶
+from pyinfra.api import Config, Inventory, State
+from pyinfra.api.connect import connect_all
+from pyinfra.api.operation import add_op
+from pyinfra.api.operations import run_ops
+from pyinfra.api.facts import get_facts
+from pyinfra.facts.server import Os
+from pyinfra.operations import server
+
+# Define your inventory (@local means execute on localhost using subprocess)
+# https://docs.pyinfra.com/en/3.x/apidoc/pyinfra.api.inventory.html
+inventory = Inventory((["@local"], {}))
+
+# Define any config you need
+# https://docs.pyinfra.com/en/3.x/apidoc/pyinfra.api.config.html
+config = Config(SUDO=True)
+
+# Set up the state object
+# https://docs.pyinfra.com/en/3.x/apidoc/pyinfra.api.state.html
+state = State(inventory=inventory, config=config)
+
+# Connect to all the hosts
+connect_all(state)
+
+# Start adding operations
+result1 = add_op(
+ state,
+ server.user,
+ user="pyinfra",
+ home="/home/pyinfra",
+ shell="/bin/bash",
+)
+result2 = add_op(
+ state,
+ server.shell,
+ name="Run some shell commands",
+ commands=["whoami", "echo $PATH", "bash --version"]
+)
+
+# And finally we run the ops
+run_ops(state)
+
+# add_op returns an OperationMeta for each op, letting you access stdout, stderr, etc. after they run
+host = state.hosts.inventory['@local']
+print(result1.changed, result1[host].stdout, result1[host].stderr)
+print(result2.changed, result2[host].stdout, result2[host].stderr)
+
+# We can also get facts for all the hosts
+# https://docs.pyinfra.com/en/3.x/apidoc/pyinfra.api.facts.html
+print(get_facts(state, Os))
+
Navigation
diff --git a/en/3.x/api/reference.html b/en/3.x/api/reference.html
index db6278ef..b1216f46 100644
--- a/en/3.x/api/reference.html
+++ b/en/3.x/api/reference.html
@@ -107,6 +107,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.arguments.html b/en/3.x/apidoc/pyinfra.api.arguments.html
index 282f60bd..6163af38 100644
--- a/en/3.x/apidoc/pyinfra.api.arguments.html
+++ b/en/3.x/apidoc/pyinfra.api.arguments.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.arguments_typed.html b/en/3.x/apidoc/pyinfra.api.arguments_typed.html
index ec199402..2cb3d91e 100644
--- a/en/3.x/apidoc/pyinfra.api.arguments_typed.html
+++ b/en/3.x/apidoc/pyinfra.api.arguments_typed.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.command.html b/en/3.x/apidoc/pyinfra.api.command.html
index 570090b3..859a4d06 100644
--- a/en/3.x/apidoc/pyinfra.api.command.html
+++ b/en/3.x/apidoc/pyinfra.api.command.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.config.html b/en/3.x/apidoc/pyinfra.api.config.html
index 32ed1dc7..a91af72e 100644
--- a/en/3.x/apidoc/pyinfra.api.config.html
+++ b/en/3.x/apidoc/pyinfra.api.config.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.connect.html b/en/3.x/apidoc/pyinfra.api.connect.html
index 466b0e47..1b0724d0 100644
--- a/en/3.x/apidoc/pyinfra.api.connect.html
+++ b/en/3.x/apidoc/pyinfra.api.connect.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.connectors.html b/en/3.x/apidoc/pyinfra.api.connectors.html
index 5f62fb29..b6d08ff9 100644
--- a/en/3.x/apidoc/pyinfra.api.connectors.html
+++ b/en/3.x/apidoc/pyinfra.api.connectors.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.deploy.html b/en/3.x/apidoc/pyinfra.api.deploy.html
index f9c41d59..cd725b51 100644
--- a/en/3.x/apidoc/pyinfra.api.deploy.html
+++ b/en/3.x/apidoc/pyinfra.api.deploy.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.exceptions.html b/en/3.x/apidoc/pyinfra.api.exceptions.html
index 267f3ff0..f32e143b 100644
--- a/en/3.x/apidoc/pyinfra.api.exceptions.html
+++ b/en/3.x/apidoc/pyinfra.api.exceptions.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.facts.html b/en/3.x/apidoc/pyinfra.api.facts.html
index 23407367..86e1248f 100644
--- a/en/3.x/apidoc/pyinfra.api.facts.html
+++ b/en/3.x/apidoc/pyinfra.api.facts.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.host.html b/en/3.x/apidoc/pyinfra.api.host.html
index 4cadbc34..2d5fb5ad 100644
--- a/en/3.x/apidoc/pyinfra.api.host.html
+++ b/en/3.x/apidoc/pyinfra.api.host.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.inventory.html b/en/3.x/apidoc/pyinfra.api.inventory.html
index 1f350a9e..f55911a1 100644
--- a/en/3.x/apidoc/pyinfra.api.inventory.html
+++ b/en/3.x/apidoc/pyinfra.api.inventory.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.operation.html b/en/3.x/apidoc/pyinfra.api.operation.html
index 5f6c16c3..4baaa1f2 100644
--- a/en/3.x/apidoc/pyinfra.api.operation.html
+++ b/en/3.x/apidoc/pyinfra.api.operation.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.operations.html b/en/3.x/apidoc/pyinfra.api.operations.html
index 5d119a21..00b30019 100644
--- a/en/3.x/apidoc/pyinfra.api.operations.html
+++ b/en/3.x/apidoc/pyinfra.api.operations.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.state.html b/en/3.x/apidoc/pyinfra.api.state.html
index f9e08280..43351526 100644
--- a/en/3.x/apidoc/pyinfra.api.state.html
+++ b/en/3.x/apidoc/pyinfra.api.state.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.api.util.html b/en/3.x/apidoc/pyinfra.api.util.html
index 375f66cf..12900ac4 100644
--- a/en/3.x/apidoc/pyinfra.api.util.html
+++ b/en/3.x/apidoc/pyinfra.api.util.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.context.html b/en/3.x/apidoc/pyinfra.context.html
index b6308a94..305f7333 100644
--- a/en/3.x/apidoc/pyinfra.context.html
+++ b/en/3.x/apidoc/pyinfra.context.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.local.html b/en/3.x/apidoc/pyinfra.local.html
index f5b9d2c6..bc70cccf 100644
--- a/en/3.x/apidoc/pyinfra.local.html
+++ b/en/3.x/apidoc/pyinfra.local.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.progress.html b/en/3.x/apidoc/pyinfra.progress.html
index 9f511b4a..bddd59a9 100644
--- a/en/3.x/apidoc/pyinfra.progress.html
+++ b/en/3.x/apidoc/pyinfra.progress.html
@@ -108,6 +108,8 @@
Navigation
diff --git a/en/3.x/apidoc/pyinfra.version.html b/en/3.x/apidoc/pyinfra.version.html
index 12cd2f02..54ecae68 100644
--- a/en/3.x/apidoc/pyinfra.version.html
+++ b/en/3.x/apidoc/pyinfra.version.html
@@ -104,6 +104,8 @@
Navigation
diff --git a/en/3.x/arguments.html b/en/3.x/arguments.html
index 6bd688de..6562b578 100644
--- a/en/3.x/arguments.html
+++ b/en/3.x/arguments.html
@@ -113,6 +113,8 @@
Navigation
diff --git a/en/3.x/cli.html b/en/3.x/cli.html
index 1f66ce61..1b06d494 100644
--- a/en/3.x/cli.html
+++ b/en/3.x/cli.html
@@ -127,6 +127,8 @@
Navigation
@@ -191,7 +193,7 @@
Verbosity
Inventory¶
-# Load inventory hosts from a file
pyinfra inventory.py ...
diff --git a/en/3.x/compatibility.html b/en/3.x/compatibility.html
index 5f6fa9c0..c1b3d4c5 100644
--- a/en/3.x/compatibility.html
+++ b/en/3.x/compatibility.html
@@ -107,6 +107,8 @@
Navigation
@@ -119,6 +121,8 @@
Navigation
2.x
-> 3.x
1.x
-> 2.x
0.x
-> 1.x
Remote Systems
@local
connector)@docker
connector)@local
connector)@docker
connector)server
and files
operations should work anywhere POSIX.Upgrading pyinfra from
+2.x
-> 3.x
¶
+
+_use_sudo_password
argument to _sudo_password
# Old, 2.x decorator
+@deploy
+def mydeploy():
+ ...
+
+# New, 3.x decorator
+@deploy()
+def mydeploy():
+ ...
+
+
+@winrm
connector, will come back as pyinfra-windows
Upgrading pyinfra from
+1.x
-> 2.x
¶
+
+Upgrading pyinfra from
0.x
-> 1.x
¶v1
removes a lot of old legacy functionality in pyinfra - there will be warnings written to the user in CLI mode if any of these are encountered. The full list can be seen on the changelog. In addition to these removals, v1
brings a few major changes and deprecates the old methods. Again, pyinfra will output warnings when these are encountered, and support will be removed in v2
.Navigation
diff --git a/en/3.x/connectors/chroot.html b/en/3.x/connectors/chroot.html
index 6f9f30ae..63dd8776 100644
--- a/en/3.x/connectors/chroot.html
+++ b/en/3.x/connectors/chroot.html
@@ -120,6 +120,8 @@
Navigation
diff --git a/en/3.x/connectors/docker.html b/en/3.x/connectors/docker.html
index 9dac127c..965ac9a7 100644
--- a/en/3.x/connectors/docker.html
+++ b/en/3.x/connectors/docker.html
@@ -121,6 +121,8 @@
Navigation
diff --git a/en/3.x/connectors/dockerssh.html b/en/3.x/connectors/dockerssh.html
index 99365c8f..16f8be89 100644
--- a/en/3.x/connectors/dockerssh.html
+++ b/en/3.x/connectors/dockerssh.html
@@ -120,6 +120,8 @@
Navigation
diff --git a/en/3.x/connectors/local.html b/en/3.x/connectors/local.html
index e96e14e9..315aa1fd 100644
--- a/en/3.x/connectors/local.html
+++ b/en/3.x/connectors/local.html
@@ -120,6 +120,8 @@
Navigation
diff --git a/en/3.x/connectors/ssh.html b/en/3.x/connectors/ssh.html
index 3417113b..5db3b51b 100644
--- a/en/3.x/connectors/ssh.html
+++ b/en/3.x/connectors/ssh.html
@@ -121,6 +121,8 @@
Navigation
diff --git a/en/3.x/connectors/terraform.html b/en/3.x/connectors/terraform.html
index a36a28ef..c42961cc 100644
--- a/en/3.x/connectors/terraform.html
+++ b/en/3.x/connectors/terraform.html
@@ -120,6 +120,8 @@
Navigation
diff --git a/en/3.x/connectors/vagrant.html b/en/3.x/connectors/vagrant.html
index 91c80709..09b8d02a 100644
--- a/en/3.x/connectors/vagrant.html
+++ b/en/3.x/connectors/vagrant.html
@@ -120,6 +120,8 @@
Navigation
diff --git a/en/3.x/contributing.html b/en/3.x/contributing.html
index 306692a1..75c3ae5e 100644
--- a/en/3.x/contributing.html
+++ b/en/3.x/contributing.html
@@ -107,6 +107,8 @@
Navigation
@@ -144,7 +146,7 @@
Contributing¶
diff --git a/en/3.x/deploy-process.html b/en/3.x/deploy-process.html
index d5c33d89..0af2b0fb 100644
--- a/en/3.x/deploy-process.html
+++ b/en/3.x/deploy-process.html
@@ -115,6 +115,8 @@ Navigation
diff --git a/en/3.x/examples.html b/en/3.x/examples.html
index 75570f9b..da588d01 100644
--- a/en/3.x/examples.html
+++ b/en/3.x/examples.html
@@ -115,6 +115,8 @@
Navigation
diff --git a/en/3.x/examples/client_side_assets.html b/en/3.x/examples/client_side_assets.html
index bf401eaa..995e42b5 100644
--- a/en/3.x/examples/client_side_assets.html
+++ b/en/3.x/examples/client_side_assets.html
@@ -116,6 +116,8 @@
Navigation
diff --git a/en/3.x/examples/data_multiple_environments.html b/en/3.x/examples/data_multiple_environments.html
index 478d7076..302ff8f1 100644
--- a/en/3.x/examples/data_multiple_environments.html
+++ b/en/3.x/examples/data_multiple_environments.html
@@ -116,6 +116,8 @@
Navigation
diff --git a/en/3.x/examples/dynamic_execution_deploy.html b/en/3.x/examples/dynamic_execution_deploy.html
index 4863417b..452a8e4a 100644
--- a/en/3.x/examples/dynamic_execution_deploy.html
+++ b/en/3.x/examples/dynamic_execution_deploy.html
@@ -116,6 +116,8 @@
Navigation
diff --git a/en/3.x/examples/dynamic_inventories_data.html b/en/3.x/examples/dynamic_inventories_data.html
index 331daad9..0e484d78 100644
--- a/en/3.x/examples/dynamic_inventories_data.html
+++ b/en/3.x/examples/dynamic_inventories_data.html
@@ -116,6 +116,8 @@
Navigation
diff --git a/en/3.x/examples/groups_roles.html b/en/3.x/examples/groups_roles.html
index 8989aa1f..8f9e56e1 100644
--- a/en/3.x/examples/groups_roles.html
+++ b/en/3.x/examples/groups_roles.html
@@ -116,6 +116,8 @@
Navigation
diff --git a/en/3.x/examples/secret_storage.html b/en/3.x/examples/secret_storage.html
index 6d69a46b..c7986bd1 100644
--- a/en/3.x/examples/secret_storage.html
+++ b/en/3.x/examples/secret_storage.html
@@ -116,6 +116,8 @@
Navigation
diff --git a/en/3.x/facts.html b/en/3.x/facts.html
index 39faf871..55ab6d9b 100644
--- a/en/3.x/facts.html
+++ b/en/3.x/facts.html
@@ -149,6 +149,8 @@
Navigation
diff --git a/en/3.x/facts/apk.html b/en/3.x/facts/apk.html
index efbac924..ea19aa1a 100644
--- a/en/3.x/facts/apk.html
+++ b/en/3.x/facts/apk.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/apt.html b/en/3.x/facts/apt.html
index 6fb5fffe..554268ee 100644
--- a/en/3.x/facts/apt.html
+++ b/en/3.x/facts/apt.html
@@ -154,6 +154,8 @@
Navigation
diff --git a/en/3.x/facts/brew.html b/en/3.x/facts/brew.html
index 48001f0f..71b72c87 100644
--- a/en/3.x/facts/brew.html
+++ b/en/3.x/facts/brew.html
@@ -156,6 +156,8 @@
Navigation
diff --git a/en/3.x/facts/bsdinit.html b/en/3.x/facts/bsdinit.html
index 9968b107..77bdff79 100644
--- a/en/3.x/facts/bsdinit.html
+++ b/en/3.x/facts/bsdinit.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/cargo.html b/en/3.x/facts/cargo.html
index e5592658..4df09c5c 100644
--- a/en/3.x/facts/cargo.html
+++ b/en/3.x/facts/cargo.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/choco.html b/en/3.x/facts/choco.html
index 47f1020f..eb224d51 100644
--- a/en/3.x/facts/choco.html
+++ b/en/3.x/facts/choco.html
@@ -154,6 +154,8 @@
Navigation
diff --git a/en/3.x/facts/deb.html b/en/3.x/facts/deb.html
index add95beb..70a67f8d 100644
--- a/en/3.x/facts/deb.html
+++ b/en/3.x/facts/deb.html
@@ -155,6 +155,8 @@
Navigation
diff --git a/en/3.x/facts/dnf.html b/en/3.x/facts/dnf.html
index bd5c5bcd..ca891bb0 100644
--- a/en/3.x/facts/dnf.html
+++ b/en/3.x/facts/dnf.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/docker.html b/en/3.x/facts/docker.html
index ff422fbd..d560c357 100644
--- a/en/3.x/facts/docker.html
+++ b/en/3.x/facts/docker.html
@@ -162,6 +162,8 @@
Navigation
diff --git a/en/3.x/facts/files.html b/en/3.x/facts/files.html
index 76c3482e..77624a14 100644
--- a/en/3.x/facts/files.html
+++ b/en/3.x/facts/files.html
@@ -165,6 +165,8 @@
Navigation
diff --git a/en/3.x/facts/flatpak.html b/en/3.x/facts/flatpak.html
index e48290e2..09ab8d3b 100644
--- a/en/3.x/facts/flatpak.html
+++ b/en/3.x/facts/flatpak.html
@@ -155,6 +155,8 @@
Navigation
diff --git a/en/3.x/facts/gem.html b/en/3.x/facts/gem.html
index eb6c5b74..74a29b0d 100644
--- a/en/3.x/facts/gem.html
+++ b/en/3.x/facts/gem.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/git.html b/en/3.x/facts/git.html
index 11d383c0..de44e046 100644
--- a/en/3.x/facts/git.html
+++ b/en/3.x/facts/git.html
@@ -155,6 +155,8 @@
Navigation
diff --git a/en/3.x/facts/gpg.html b/en/3.x/facts/gpg.html
index 54d91e51..44310722 100644
--- a/en/3.x/facts/gpg.html
+++ b/en/3.x/facts/gpg.html
@@ -155,6 +155,8 @@
Navigation
diff --git a/en/3.x/facts/hardware.html b/en/3.x/facts/hardware.html
index 6fffe138..26597060 100644
--- a/en/3.x/facts/hardware.html
+++ b/en/3.x/facts/hardware.html
@@ -160,6 +160,8 @@
Navigation
Navigation
diff --git a/en/3.x/facts/launchd.html b/en/3.x/facts/launchd.html
index fc635557..dd61de2a 100644
--- a/en/3.x/facts/launchd.html
+++ b/en/3.x/facts/launchd.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/lxd.html b/en/3.x/facts/lxd.html
index b9132706..9dbd82ee 100644
--- a/en/3.x/facts/lxd.html
+++ b/en/3.x/facts/lxd.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/mysql.html b/en/3.x/facts/mysql.html
index baf8907b..74922130 100644
--- a/en/3.x/facts/mysql.html
+++ b/en/3.x/facts/mysql.html
@@ -155,6 +155,8 @@
Navigation
diff --git a/en/3.x/facts/npm.html b/en/3.x/facts/npm.html
index d516a401..cf8cdcaa 100644
--- a/en/3.x/facts/npm.html
+++ b/en/3.x/facts/npm.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/openrc.html b/en/3.x/facts/openrc.html
index 2bf5c576..aa3d276e 100644
--- a/en/3.x/facts/openrc.html
+++ b/en/3.x/facts/openrc.html
@@ -154,6 +154,8 @@
Navigation
diff --git a/en/3.x/facts/pacman.html b/en/3.x/facts/pacman.html
index 2759a3d0..f918de40 100644
--- a/en/3.x/facts/pacman.html
+++ b/en/3.x/facts/pacman.html
@@ -154,6 +154,8 @@
Navigation
diff --git a/en/3.x/facts/pip.html b/en/3.x/facts/pip.html
index 2f006b3b..4841337d 100644
--- a/en/3.x/facts/pip.html
+++ b/en/3.x/facts/pip.html
@@ -154,6 +154,8 @@
Navigation
diff --git a/en/3.x/facts/pkg.html b/en/3.x/facts/pkg.html
index 4b89609c..67ec4329 100644
--- a/en/3.x/facts/pkg.html
+++ b/en/3.x/facts/pkg.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/pkgin.html b/en/3.x/facts/pkgin.html
index f745d447..f7389cb4 100644
--- a/en/3.x/facts/pkgin.html
+++ b/en/3.x/facts/pkgin.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/postgres.html b/en/3.x/facts/postgres.html
index da3cd22e..ff452f07 100644
--- a/en/3.x/facts/postgres.html
+++ b/en/3.x/facts/postgres.html
@@ -154,6 +154,8 @@
Navigation
diff --git a/en/3.x/facts/postgresql.html b/en/3.x/facts/postgresql.html
index 9e8c9434..e145e3a5 100644
--- a/en/3.x/facts/postgresql.html
+++ b/en/3.x/facts/postgresql.html
@@ -154,6 +154,8 @@
Navigation
diff --git a/en/3.x/facts/rpm.html b/en/3.x/facts/rpm.html
index 72404359..a6d92128 100644
--- a/en/3.x/facts/rpm.html
+++ b/en/3.x/facts/rpm.html
@@ -155,6 +155,8 @@
Navigation
diff --git a/en/3.x/facts/runit.html b/en/3.x/facts/runit.html
index 018e3d74..80c1bdd8 100644
--- a/en/3.x/facts/runit.html
+++ b/en/3.x/facts/runit.html
@@ -154,6 +154,8 @@
Navigation
diff --git a/en/3.x/facts/selinux.html b/en/3.x/facts/selinux.html
index 5fac233f..7b3c79db 100644
--- a/en/3.x/facts/selinux.html
+++ b/en/3.x/facts/selinux.html
@@ -157,6 +157,8 @@
Navigation
@@ -201,7 +203,8 @@
Selinux Factsselinux.FileContext. If there is no mapping, it returns
{}
+using the same format as selinux.FileContext.
+If there is no mapping, it returns {}
Note: This fact requires root privileges.
Selinux Facts(tcp|udp|dccp|sctp) ports.
Note: This fact requires root privileges.
+
{
+ "tcp": { 22: "ssh_port_t", ...},
+ "udp": { ...}
+}
+
Navigation
diff --git a/en/3.x/facts/snap.html b/en/3.x/facts/snap.html
index 62c674a7..8287b2f7 100644
--- a/en/3.x/facts/snap.html
+++ b/en/3.x/facts/snap.html
@@ -155,6 +155,8 @@
Navigation
diff --git a/en/3.x/facts/systemd.html b/en/3.x/facts/systemd.html
index 2442aa34..337783a6 100644
--- a/en/3.x/facts/systemd.html
+++ b/en/3.x/facts/systemd.html
@@ -154,6 +154,8 @@
Navigation
diff --git a/en/3.x/facts/sysvinit.html b/en/3.x/facts/sysvinit.html
index ee6d3379..ca2453c3 100644
--- a/en/3.x/facts/sysvinit.html
+++ b/en/3.x/facts/sysvinit.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/upstart.html b/en/3.x/facts/upstart.html
index 70c62571..da57ec64 100644
--- a/en/3.x/facts/upstart.html
+++ b/en/3.x/facts/upstart.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/vzctl.html b/en/3.x/facts/vzctl.html
index 29c6a70d..2c518f75 100644
--- a/en/3.x/facts/vzctl.html
+++ b/en/3.x/facts/vzctl.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/xbps.html b/en/3.x/facts/xbps.html
index 791365bf..e477cf3d 100644
--- a/en/3.x/facts/xbps.html
+++ b/en/3.x/facts/xbps.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/yum.html b/en/3.x/facts/yum.html
index 7eb4096b..6f73eccd 100644
--- a/en/3.x/facts/yum.html
+++ b/en/3.x/facts/yum.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/facts/zfs.html b/en/3.x/facts/zfs.html
index 9507f409..e04415ff 100644
--- a/en/3.x/facts/zfs.html
+++ b/en/3.x/facts/zfs.html
@@ -157,6 +157,8 @@
Navigation
diff --git a/en/3.x/facts/zypper.html b/en/3.x/facts/zypper.html
index 7f0fb6e2..f1d06dff 100644
--- a/en/3.x/facts/zypper.html
+++ b/en/3.x/facts/zypper.html
@@ -153,6 +153,8 @@
Navigation
diff --git a/en/3.x/faq.html b/en/3.x/faq.html
index 2ac38f4f..215d07e3 100644
--- a/en/3.x/faq.html
+++ b/en/3.x/faq.html
@@ -114,6 +114,8 @@
Navigation
diff --git a/en/3.x/genindex.html b/en/3.x/genindex.html
index 0cde2310..9efa5622 100644
--- a/en/3.x/genindex.html
+++ b/en/3.x/genindex.html
@@ -99,6 +99,8 @@
Navigation
diff --git a/en/3.x/getting-started.html b/en/3.x/getting-started.html
index 2c1a5ef3..65595481 100644
--- a/en/3.x/getting-started.html
+++ b/en/3.x/getting-started.html
@@ -112,6 +112,8 @@
Navigation
diff --git a/en/3.x/index.html b/en/3.x/index.html
index 14435800..7c35d7fd 100644
--- a/en/3.x/index.html
+++ b/en/3.x/index.html
@@ -105,6 +105,8 @@
Navigation
diff --git a/en/3.x/install.html b/en/3.x/install.html
index bafefd9a..64b76b78 100644
--- a/en/3.x/install.html
+++ b/en/3.x/install.html
@@ -99,6 +99,8 @@
Navigation
diff --git a/en/3.x/inventory-data.html b/en/3.x/inventory-data.html
index 04ad3f81..b506a5e7 100644
--- a/en/3.x/inventory-data.html
+++ b/en/3.x/inventory-data.html
@@ -117,6 +117,8 @@
Navigation
diff --git a/en/3.x/objects.inv b/en/3.x/objects.inv
index 15352197..598afa46 100644
Binary files a/en/3.x/objects.inv and b/en/3.x/objects.inv differ
diff --git a/en/3.x/operations.html b/en/3.x/operations.html
index f9c760b1..563495dc 100644
--- a/en/3.x/operations.html
+++ b/en/3.x/operations.html
@@ -148,6 +148,8 @@
Navigation
diff --git a/en/3.x/operations/apk.html b/en/3.x/operations/apk.html
index a21aa243..fd18c2ad 100644
--- a/en/3.x/operations/apk.html
+++ b/en/3.x/operations/apk.html
@@ -154,6 +154,8 @@
Navigation
diff --git a/en/3.x/operations/apt.html b/en/3.x/operations/apt.html
index 1259516e..7c722660 100644
--- a/en/3.x/operations/apt.html
+++ b/en/3.x/operations/apt.html
@@ -159,6 +159,8 @@
Navigation
@@ -243,8 +245,7 @@
Apt OperationsWarning
apt-key
is deprecated in Debian, it is recommended NOT to use this
operation and instead follow the instructions here:
-+
https://wiki.debian.org/DebianRepository/UseThirdParty
Examples:
# Note: If using URL, wget is assumed to be installed.
diff --git a/en/3.x/operations/brew.html b/en/3.x/operations/brew.html
index 8343d7a1..b4ee0c45 100644
--- a/en/3.x/operations/brew.html
+++ b/en/3.x/operations/brew.html
@@ -157,6 +157,8 @@ Navigation
files.replace
.
-*
), remember to escape
it first using Python’s re.escape
.True
, any editing of the file will place an old copy with the ISO
date (taken from the machine running pyinfra
) appended as the extension. If
@@ -679,7 +681,7 @@ *.pyc
)Examples:
-) -zfs.dataset(“tank/vm-disks/db_srv_04”, volume_size=”32G”) # creates a volume -zfs.dataset(”tank/home@old_version”, present=False)
+zfs.dataset(
+ "tank/srv",
+ mountpoint="/srv",
+ compression="lz4",
+ properties={"com.sun:auto_snapshot": "true"}
+)
+zfs.dataset("tank/vm-disks/db_srv_04", volume_size="32G") # creates a volume
+zfs.dataset("tank/home@old_version", present=False)
+
zfs.filesystem
¶Examples:
-zfs.filesystem(“tank/vm-disks/db_srv_04”, “32G”)
+zfs.filesystem("tank/vm-disks/db_srv_04", "32G")
+
zfs.snapshot
¶Examples:
-zfs.snapshot(”tank/home@weekly_backup”)
+zfs.snapshot("tank/home@weekly_backup")
+
@chroot
Connector", "@docker
Connector", "@dockerssh
Connector", "@local
Connector", "@ssh
Connector", "@terraform
Connector", "@vagrant
Connector", "Contributing", "How pyinfra Works", "Example Deploys", "Client Side Assets", "Data Across Multiple Environments", "Dynamic Execution during Deploy", "Dynamic Inventories & Data", "Groups & Roles", "Using Secrets in pyinfra", "Facts Index", "Apk Facts", "Apt Facts", "Brew Facts", "Bsdinit Facts", "Cargo Facts", "Choco Facts", "Deb Facts", "Dnf Facts", "Docker Facts", "Files Facts", "Flatpak Facts", "Gem Facts", "Git Facts", "Gpg Facts", "Hardware Facts", "Iptables Facts", "Launchd Facts", "Lxd Facts", "Mysql Facts", "Npm Facts", "Openrc Facts", "Pacman Facts", "Pip Facts", "Pkg Facts", "Pkgin Facts", "Postgres Facts", "Postgresql Facts", "Rpm Facts", "Runit Facts", "Selinux Facts", "Server Facts", "Snap Facts", "Systemd Facts", "Sysvinit Facts", "Upstart Facts", "Vzctl Facts", "Xbps Facts", "Yum Facts", "Zfs Facts", "Zypper Facts", "Frequently Asked Questions", "Getting Started", "pyinfra Documentation", "Installation", "Inventory & Data", "Operations Index", "Apk Operations", "Apt Operations", "Brew Operations", "Bsdinit Operations", "Cargo Operations", "Choco Operations", "Dnf Operations", "Docker Operations", "Files Operations", "Flatpak Operations", "Gem Operations", "Git Operations", "Iptables Operations", "Launchd Operations", "Lxd Operations", "Mysql Operations", "Npm Operations", "Openrc Operations", "Pacman Operations", "Pip Operations", "Pkg Operations", "Pkgin Operations", "Postgres Operations", "Postgresql Operations", "Puppet Operations", "Python Operations", "Runit Operations", "Selinux Operations", "Server Operations", "Snap Operations", "Ssh Operations", "Systemd Operations", "Sysvinit Operations", "Upstart Operations", "Vzctl Operations", "Xbps Operations", "Yum Operations", "Zfs Operations", "Zypper Operations", "Performance", "Source Serif Pro", "Help & Support", "Using Operations"], "terms": {"enabl": [0, 1, 3, 7, 11, 13, 25, 26, 27, 32, 36, 52, 65, 75, 77, 82, 84, 90, 94, 97, 98, 104, 108, 117, 119, 122, 124, 127, 129], "pyinfra": [0, 1, 2, 3, 4, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 44, 54, 70, 85, 88, 89, 90, 92, 97, 99, 102, 110, 113, 119, 121, 124, 127, 129, 130, 132, 133], "directli": [0, 14, 25, 125], "integr": [0, 27], "other": [0, 3, 13, 24, 25, 27, 32, 35, 40, 75, 89, 92, 113, 117, 119, 121, 123, 133], "tool": [0, 1, 25, 27, 35, 88, 119, 130, 131], "system": [0, 1, 25, 48, 53, 54, 75, 92, 97, 98, 99, 103, 119, 120, 127, 129, 131], "connecto": [], "ar": [0, 1, 3, 4, 12, 15, 16, 20, 24, 25, 26, 27, 32, 35, 36, 37, 38, 44, 48, 54, 77, 85, 86, 88, 89, 90, 92, 97, 99, 111, 119, 125, 126, 127, 129, 133], "written": [0, 3, 26, 36], "python": [0, 1, 2, 3, 21, 26, 35, 40, 41, 43, 86, 87, 88, 89, 90, 99, 110, 119, 133], "class": [0, 3, 5, 6, 7, 8, 13, 14, 15, 16, 18, 19, 20, 116], "inventoryconnector": 0, "baseconnector": [0, 14], "handles_execut": 0, "fals": [0, 3, 8, 14, 16, 17, 18, 19, 21, 24, 32, 36, 54, 70, 73, 77, 86, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 106, 107, 108, 109, 110, 112, 113, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 133], "staticmethod": 0, "def": [0, 1, 3, 40, 41, 43, 116, 133], "make_names_data": 0, "_": [0, 3, 24], "none": [0, 3, 5, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 22, 54, 57, 58, 63, 64, 67, 70, 71, 73, 74, 75, 77, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129], "gener": [0, 3, 5, 6, 12, 13, 14, 16, 19, 25, 26, 27, 33, 34, 36, 40, 41, 44, 78, 92, 99, 119, 133], "target": [0, 3, 14, 15, 25, 27, 29, 32, 36, 41, 54, 74, 75, 86, 87, 89, 99, 103, 106, 113, 118, 119, 133], "yield": [0, 3], "tupl": [0, 5, 14, 15, 16, 18, 19, 47, 89, 99, 102], "name": [0, 1, 3, 5, 10, 11, 13, 14, 15, 16, 18, 19, 24, 25, 28, 29, 30, 31, 33, 34, 36, 40, 41, 44, 52, 60, 61, 65, 66, 72, 73, 75, 76, 77, 78, 79, 82, 84, 86, 89, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 133], "data": [0, 3, 4, 5, 11, 12, 13, 14, 15, 25, 27, 33, 36, 37, 63, 70, 74, 86, 87, 119], "group": [0, 1, 12, 14, 15, 25, 29, 32, 36, 37, 39, 41, 44, 54, 66, 85, 86, 87, 90, 99, 102], "local": [0, 4, 25, 26, 35, 38, 42, 44, 86, 87, 89, 90, 94, 99, 102, 110, 117, 121, 133], "A": [0, 1, 4, 13, 29, 30, 39, 42, 86, 87, 89, 133], "implement": [0, 21, 27, 116], "requir": [0, 1, 13, 26, 35, 36, 74, 86, 92, 99, 103, 106, 110, 113, 118, 119], "few": [0, 26, 89, 130], "more": [0, 1, 25, 26, 33, 58, 86, 99, 123, 130, 133], "method": [0, 3, 14, 26], "localconnector": 0, "true": [0, 1, 3, 13, 14, 16, 18, 24, 25, 31, 32, 36, 40, 54, 70, 73, 77, 85, 86, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129, 133], "see": [0, 1, 2, 24, 36, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 89, 93, 99, 100, 101, 106, 113, 119, 120, 123, 132, 133], "abov": [0, 1, 25, 27, 36, 86, 88, 106, 113], "run_shell_command": [0, 14, 21, 40, 116], "self": [0, 3], "command": [0, 4, 13, 14, 16, 21, 24, 26, 27, 30, 32, 36, 40, 44, 72, 87, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 104, 106, 108, 109, 110, 112, 113, 114, 115, 116, 117, 119, 122, 123, 124, 125, 126, 127, 129, 130, 133], "stringcommand": [0, 3, 7, 13], "print_output": [0, 18, 21], "bool": [0, 8, 13, 14, 16, 17, 18, 19, 21, 24, 32], "print_input": [0, 18, 21], "argument": [0, 4, 7, 12, 14, 19, 26, 32, 36, 44, 85, 86, 87, 90, 92, 97, 99, 103, 106, 110, 113, 116, 119, 120, 125, 127, 129], "unpack": [0, 7, 14], "connectorargu": [0, 5, 7], "commandoutput": [0, 14, 16, 19], "machin": [0, 25, 27, 30, 31, 77, 86, 89, 99, 119, 122, 133], "arg": [0, 6, 7, 11, 13, 14, 16, 18, 89, 99, 103, 116, 119], "actual": [0, 36, 66, 85, 99], "whether": [0, 3, 17, 24, 32, 65, 77, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129], "print": [0, 25, 86], "output": [0, 12, 13, 16, 19, 21, 25, 26, 27, 33, 40, 48, 53, 75, 86, 89, 103, 119], "input": [0, 19, 25, 103], "global": [0, 3, 4, 5, 12, 13, 26, 36, 49, 64, 86, 87, 90, 99, 102, 106, 107, 110, 113, 129], "return": [0, 3, 5, 7, 15, 18, 19, 24, 25, 41, 43, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 89, 97, 115, 127, 133], "indic": [0, 3, 18, 75, 77], "success": [0, 16, 24, 92], "stdout": [0, 16, 40, 116, 133], "stderr": [0, 16, 40, 116], "line": [0, 3, 21, 25, 40, 44, 54, 75, 90, 116, 119], "put_fil": [0, 14], "filename_or_io": [0, 3, 19], "remote_filenam": [0, 3, 121], "remote_temp_filenam": [0, 7], "ignor": [0, 21, 24, 99, 119], "upload": [0, 3, 14, 36, 38, 90, 99, 119], "file": [0, 14, 19, 21, 25, 26, 32, 36, 37, 38, 41, 42, 44, 52, 58, 72, 74, 75, 82, 86, 87, 90, 92, 97, 102, 106, 110, 111, 113, 117, 118, 119, 121, 122, 123, 124, 127, 129, 131], "io": [0, 7, 19, 99, 120], "object": [0, 7, 8, 14, 15, 16, 18, 19, 20, 33, 99], "copi": [0, 8, 99, 110], "temporari": [0, 14, 75, 121], "directori": [0, 21, 24, 44, 64, 75, 89, 90, 92, 102, 107, 110, 111, 117, 118, 119, 133], "locat": [0, 3, 75, 99, 110, 121], "succ": [], "failur": 0, "get_fil": [0, 14], "download": [0, 3, 14, 84, 88, 90, 92, 97, 127, 129], "our": [0, 86], "filenam": [0, 14, 19, 21, 32, 92, 97, 99, 106, 113, 119, 121, 127, 129], "oper": [1, 4, 5, 11, 12, 13, 14, 19, 28, 29, 35, 37, 40, 42, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 89, 130], "execut": [1, 3, 4, 7, 11, 14, 16, 17, 18, 20, 21, 26, 27, 28, 29, 31, 35, 36, 37, 44, 75, 85, 86, 87, 89, 91, 92, 93, 96, 97, 98, 99, 106, 109, 112, 113, 114, 115, 116, 117, 119, 121, 122, 125, 126, 127, 129, 130, 133], "low": [1, 14, 78], "level": [1, 14, 25, 74, 78, 119], "filesystem": [1, 44, 54, 75, 90, 99, 119, 125], "systemd": [1, 44, 86, 90, 99, 104, 119], "manag": [1, 18, 61, 73, 79, 83, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 119, 120, 122, 123, 124, 125, 126, 127, 128, 130], "etc": [1, 24, 36, 48, 52, 72, 78, 82, 85, 86, 92, 94, 97, 99, 103, 117, 119, 122, 123, 124, 127, 129, 133], "i": [1, 2, 3, 4, 12, 13, 16, 18, 24, 25, 26, 27, 30, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 44, 54, 59, 73, 74, 75, 86, 87, 88, 89, 91, 92, 93, 96, 97, 98, 99, 101, 102, 105, 106, 109, 110, 111, 112, 113, 114, 115, 116, 117, 119, 121, 122, 123, 124, 125, 126, 127, 129, 130, 131, 133], "higher": 1, "abstract": [1, 13], "combin": [1, 4, 14, 25, 89], "one": [1, 3, 11, 16, 25, 27, 33, 36, 40, 54, 58, 85, 88, 97, 98, 99, 121, 127, 133], "togeth": [1, 92], "setup": [1, 4, 18, 36, 44, 133], "configur": [1, 8, 9, 14, 17, 27, 40, 41, 75, 87, 89, 102, 119, 133], "someth": [1, 86, 99, 119], "docker": [1, 25, 26, 30, 35, 44, 87, 89, 90, 92, 97, 99, 119, 127, 133], "certbot": 1, "nginx": [1, 24, 25, 31, 36, 98], "usual": [1, 42], "defin": [1, 3, 4, 15, 25, 36, 40, 85, 86, 89, 90, 103, 124, 133], "user": [1, 11, 12, 16, 20, 25, 26, 32, 33, 44, 54, 63, 74, 77, 85, 89, 90, 92, 96, 99, 102, 113, 117, 121, 122, 133], "us": [1, 4, 7, 13, 14, 15, 19, 20, 24, 26, 27, 31, 32, 33, 35, 37, 40, 41, 42, 44, 51, 54, 59, 74, 75, 77, 86, 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, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 131, 132], "It": [1, 3, 25, 41, 42, 88, 89, 133], "also": [1, 3, 26, 33, 35, 41, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 89, 99, 106, 115, 133], "possibl": [1, 13, 25, 26, 36, 41, 88, 89, 133], "modul": [1, 3, 4, 41, 42, 44, 75, 88, 90, 103, 105, 106, 110, 113, 116, 119], "make": [1, 3, 19, 26, 36, 86, 89, 90, 99, 113, 133], "them": [1, 86, 90, 113], "reusabl": [1, 87], "shareabl": 1, "via": [1, 14, 25, 32, 35, 40, 44, 86, 89, 92, 97, 127, 129, 133], "pypi": 1, "These": [1, 20, 25, 26, 42, 86, 89, 92, 97, 103, 119, 127, 129], "can": [1, 2, 3, 25, 26, 27, 29, 30, 32, 33, 36, 40, 41, 42, 43, 44, 48, 85, 86, 87, 89, 91, 92, 93, 95, 96, 97, 99, 101, 102, 103, 107, 109, 110, 113, 117, 119, 127, 129, 132, 133], "import": [1, 20, 26, 36, 38, 40, 41, 42, 43, 44, 85, 86, 89, 99, 106, 113, 133], "your": [1, 3, 25, 35, 38, 87, 99, 120, 133], "own": [1, 3, 4, 24, 87, 99, 111, 113, 133], "code": [1, 20, 24, 36, 41, 78, 115, 116, 119, 130, 133], "utilis": 1, "essenti": [1, 35], "two": [1, 11, 25, 32, 39, 54, 86, 89, 99, 111, 121, 133], "chang": [1, 3, 12, 16, 24, 26, 31, 35, 40, 86, 89, 90, 99, 102, 106, 113, 115, 118, 119, 122, 125, 131], "from": [1, 5, 11, 14, 15, 16, 19, 24, 25, 27, 29, 33, 36, 38, 40, 41, 42, 43, 44, 54, 85, 86, 87, 89, 92, 97, 98, 99, 102, 103, 106, 113, 118, 119, 121, 127, 129, 133], "wrap": [1, 11, 14, 99], "everyth": 1, "function": [1, 3, 5, 7, 11, 16, 24, 26, 35, 40, 116, 131, 133], "decor": [1, 11, 16], "api": [1, 3, 21, 26, 35, 40, 41, 87], "apt": [1, 25, 31, 36, 40, 44, 51, 77, 85, 86, 87, 89, 90, 133], "instal": [1, 25, 31, 35, 36, 38, 40, 42, 44, 45, 46, 47, 49, 50, 51, 52, 55, 56, 59, 64, 66, 67, 68, 69, 72, 74, 75, 76, 81, 82, 84, 86, 90, 91, 92, 93, 95, 97, 100, 101, 107, 109, 110, 111, 112, 119, 120, 126, 127, 129, 133], "mariadb": 1, "install_mariadb": 1, "server": [1, 3, 9, 11, 13, 16, 17, 24, 25, 26, 27, 35, 36, 40, 41, 42, 44, 59, 85, 86, 87, 89, 90, 92, 94, 99, 106, 111, 113, 115, 118, 121, 123, 133], "thi": [1, 2, 3, 4, 13, 14, 15, 16, 19, 24, 25, 26, 29, 30, 31, 32, 35, 38, 39, 40, 41, 42, 44, 59, 74, 75, 85, 86, 89, 91, 92, 93, 94, 96, 97, 98, 99, 102, 103, 104, 106, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 131, 132, 133], "could": [1, 3], "like": [1, 3, 25, 26, 33, 36, 41, 44, 86, 89, 91, 92, 93, 94, 95, 96, 99, 101, 104, 107, 108, 109, 110, 117, 122, 123, 124, 129, 130, 133], "so": [1, 3, 13, 15, 25, 26, 33, 36, 44, 89, 111, 118, 119, 124, 133], "packaged_deploi": 1, "basic": [1, 37, 86, 87], "simpli": [1, 3, 38, 92, 124, 133], "prometheu": 1, "complex": [1, 42, 99, 133], "contain": [1, 4, 9, 20, 25, 27, 29, 30, 32, 39, 53, 62, 75, 80, 86, 89, 90, 99, 119, 125, 129], "multipl": [1, 14, 25, 29, 30, 32, 34, 36, 37, 42, 44, 89, 93, 99, 100, 102, 119, 120], "instanc": [1, 7, 25, 75, 86], "variou": 1, "export": [1, 99], "servic": [1, 36, 40, 61, 65, 73, 77, 79, 86, 90, 98, 99, 118, 133], "accept": [1, 3, 32, 90], "same": [1, 15, 32, 42, 48, 74, 89, 92, 98, 99, 102, 120], "thei": [1, 3, 36, 77, 99, 117, 133], "appli": [1, 24, 86, 99, 103, 113, 115, 125], "everi": [1, 25, 36, 78, 119], "call": [1, 3, 5, 11, 13, 16, 36, 40, 44, 90, 99, 133], "within": [1, 18, 21, 26, 28, 42, 44, 86, 116, 119, 133], "take": [1, 3, 7, 11, 16, 35, 86, 106, 113, 119], "sudo": [1, 8, 16, 24, 25, 86, 99, 116, 121, 133], "set": [1, 3, 13, 16, 18, 19, 20, 24, 26, 29, 32, 37, 54, 63, 73, 74, 75, 85, 87, 89, 90, 92, 97, 98, 99, 102, 106, 111, 117, 118, 119, 121, 124, 127, 128, 129, 131, 133], "default": [1, 3, 5, 8, 13, 14, 15, 24, 25, 29, 32, 35, 36, 39, 65, 85, 89, 92, 99, 102, 106, 107, 108, 111, 119, 121, 129, 133], "ani": [1, 4, 5, 11, 13, 14, 15, 16, 19, 24, 25, 26, 27, 32, 34, 35, 36, 38, 39, 40, 75, 86, 87, 88, 89, 90, 92, 97, 99, 102, 106, 117, 119, 127, 129], "provid": [1, 2, 3, 15, 20, 25, 29, 30, 36, 43, 54, 66, 72, 89, 92, 98, 99, 118, 119, 131, 133], "host": [1, 3, 4, 5, 7, 11, 12, 13, 15, 16, 17, 18, 19, 24, 25, 27, 29, 31, 32, 33, 34, 38, 40, 41, 42, 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, 86, 87, 92, 97, 99, 102, 106, 113, 116, 119, 121, 125, 127], "preced": 1, "sensibl": 1, "option": [1, 8, 16, 18, 21, 35, 63, 73, 75, 88, 92, 97, 98, 99, 106, 113, 117, 119, 120, 127, 129], "end": [1, 20, 36, 40, 54, 99], "customis": 1, "modifi": [1, 27, 29, 119, 128], "mariadb_vers": 1, "1": [1, 7, 18, 19, 25, 32, 33, 35, 52, 59, 72, 78, 82, 84, 89, 97, 99, 119, 123, 127, 129, 133], "2": [1, 18, 25, 32, 33, 59, 75, 89, 99, 102, 115, 123], "3": [1, 18, 26, 29, 30, 33, 35, 59, 88, 89, 123], "data_default": [1, 11], "f": [1, 3, 25, 75, 92, 93, 97, 116, 119, 127, 133], "In": [2, 24, 25, 26, 36, 40, 86, 89, 131], "addit": [2, 24, 26, 35, 85, 89, 92, 97, 110, 127, 128, 129, 131], "cli": [2, 11, 20, 26, 86, 87, 88, 89, 106, 113], "full": [2, 25, 26, 75, 86, 89, 92, 133], "As": [2, 25, 36, 41], "v1": [26, 41, 102], "consid": [2, 24, 132], "mostli": 2, "stabl": [2, 55, 76, 97, 120, 127], "an": [2, 3, 4, 9, 11, 12, 16, 18, 19, 25, 29, 32, 34, 35, 36, 39, 43, 44, 54, 55, 76, 86, 99, 102, 105, 117, 118, 133], "exampl": [2, 4, 7, 24, 27, 31, 33, 36, 40, 41, 42, 44, 86, 87, 89, 91, 92, 93, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 126, 127, 128, 129], "how": [2, 3, 27, 29, 32, 35, 44, 99, 110, 119], "embed": [], "below": [25, 27, 36, 88, 99, 132, 133], "refer": [2, 35, 89, 131], "build": [3, 29, 35, 38, 88, 119, 131, 133], "block": [3, 44, 59, 90, 103], "document": [3, 26, 37, 85, 133], "describ": [3, 25, 26, 36, 39, 86, 90], "you": [3, 26, 28, 29, 30, 32, 33, 35, 36, 37, 39, 40, 44, 85, 86, 87, 88, 89, 99, 116, 119, 132, 133], "extend": 3, "": [3, 4, 13, 14, 15, 16, 19, 21, 25, 32, 35, 36, 41, 54, 63, 86, 89, 98, 99, 106, 111, 113, 119, 120, 122, 126, 130, 133], "pass": [3, 11, 12, 16, 25, 26, 29, 32, 42, 44, 89, 92, 94, 99, 104, 108, 110, 116, 117, 119, 122, 124, 133], "current": [3, 4, 5, 13, 18, 20, 26, 34, 35, 75, 89, 99, 102, 119, 133], "deploi": [3, 4, 5, 8, 12, 13, 14, 16, 17, 18, 20, 24, 25, 36, 38, 39, 41, 42, 44, 89, 92, 97, 98, 99, 116, 119, 127, 129, 133], "state": [3, 4, 5, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 21, 36, 40, 44, 73, 75, 90, 94, 99, 104, 108, 117, 118, 119, 122, 123, 124, 127, 130, 133], "read": [3, 9, 14, 34, 36, 44, 106, 113, 119, 122], "compar": 3, "except": [3, 4, 15, 19, 24, 36, 116, 133], "those": [3, 42], "start": [3, 25, 29, 35, 37, 54, 87, 90, 98, 99, 117, 119, 123, 124, 130, 133], "which": [3, 4, 13, 15, 25, 26, 36, 37, 44, 89, 99, 102, 110, 111, 118, 119, 123, 133], "reserv": [3, 26], "intern": [3, 16, 41], "my_oper": 3, "three": [3, 27, 36, 130], "type": [3, 5, 12, 13, 14, 19, 24, 29, 32, 46, 74, 75, 84, 118, 119, 129], "shell": [3, 7, 8, 14, 21, 26, 38, 40, 42, 75, 85, 86, 90, 99, 133], "repres": [3, 14, 15, 20, 98, 133], "string": [3, 7, 19, 21, 24, 51, 74, 92, 99, 119], "OR": [3, 133], "echo": [3, 25, 40, 75, 86, 116, 121, 133], "fileuploadcommand": [3, 7], "filedownloadcommand": [3, 7], "functioncommand": [3, 7], "args_list": 3, "kwargs_dict": 3, "addition": 3, "overrid": [3, 15, 32, 89, 119, 124], "most": [3, 26, 36, 87, 133], "_sudo": [3, 24, 25, 31, 85, 86, 87, 89, 99, 133], "syntax": [3, 86, 99], "path": [3, 19, 25, 36, 44, 54, 74, 85, 88, 99, 102, 110, 115, 118, 119, 133], "some": [3, 25, 26, 40, 41, 86, 92, 99, 132, 133], "simplifi": 3, "version": [3, 4, 8, 35, 45, 47, 49, 50, 51, 55, 56, 64, 66, 67, 68, 69, 72, 75, 76, 81, 91, 92, 93, 95, 96, 97, 101, 103, 107, 109, 110, 111, 112, 127, 129, 133], "creat": [3, 4, 24, 27, 29, 35, 89, 90, 97, 98, 99, 102, 110, 113, 118, 119, 121, 123, 127, 128, 129, 133], "remov": [3, 26, 29, 36, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 109, 110, 111, 112, 113, 117, 118, 119, 120, 121, 126, 127, 129], "remot": [3, 13, 16, 25, 30, 38, 40, 44, 54, 75, 86, 92, 97, 99, 102, 119, 121, 127, 129], "base": [3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 29, 30, 35, 36, 99, 105, 131, 133], "present": [3, 14, 36, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 109, 110, 111, 112, 113, 118, 119, 120, 121, 126, 127, 128, 129], "kwarg": [3, 5, 6, 7, 8, 11, 13, 14, 16, 18, 19, 116], "should": [3, 14, 26, 35, 37, 86, 87, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 133], "exist": [3, 19, 26, 29, 44, 54, 63, 74, 92, 97, 98, 99, 102, 103, 105, 110, 113, 117, 118, 119, 121, 124, 127, 128, 129, 133], "info": [3, 14, 38, 39, 53, 75, 78, 133], "get_fact": [3, 13, 14, 36, 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, 92, 97, 127, 133], "Not": 3, "rais": [3, 12, 116, 133], "operationerror": [3, 12], "0": [3, 7, 8, 18, 19, 24, 25, 32, 40, 41, 55, 59, 72, 75, 76, 78, 84, 92, 99, 102, 115, 119, 120, 123, 133], "format": [3, 7, 40, 53, 74, 92, 98, 99], "doesn": [3, 54, 99, 133], "t": [3, 5, 13, 14, 36, 54, 86, 92, 97, 99, 111, 117, 119, 127, 129, 133], "we": [3, 4, 25, 36, 40, 41, 89, 99, 115], "want": [3, 27, 44, 90, 99], "touch": [3, 92, 99], "don": [3, 92, 99, 119], "elif": [3, 41], "rm": 3, "either": [3, 19, 25, 29, 99, 106, 113, 115, 133], "process": [3, 13], "The": [3, 4, 8, 11, 13, 16, 20, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 54, 85, 86, 87, 89, 99, 103, 105, 113, 116, 119, 130], "handler": [3, 5, 18], "anyth": [3, 25, 86], "normal": [3, 11, 89], "dict": [3, 5, 13, 14, 18, 19, 32, 45, 47, 49, 50, 51, 56, 59, 60, 61, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 75, 78, 79, 80, 81, 99], "mai": [3, 44, 88, 89, 99, 118], "valu": [3, 5, 12, 15, 18, 19, 25, 33, 36, 43, 44, 75, 89, 98, 99, 102, 118, 119], "error": [3, 12, 18, 21, 24], "occur": 3, "dure": [3, 12, 24, 37, 119, 133], "collect": [3, 13, 15, 25, 40, 86, 133], "requires_command": [3, 13], "variabl": [3, 5, 20, 24, 33, 43, 75, 85, 89, 99, 111, 119, 133], "specifi": [3, 24, 32, 33, 54, 72, 74, 91, 92, 93, 95, 96, 97, 99, 101, 102, 105, 107, 110, 112, 117, 118, 119, 127, 129], "must": [3, 25, 29, 30, 33, 74, 92, 119], "avail": [3, 24, 27, 59, 75, 87, 89, 91, 111, 117, 130, 133], "If": [3, 24, 37, 44, 54, 74, 85, 87, 88, 89, 92, 97, 99, 119, 127, 129, 133], "empti": [3, 15, 54, 74, 92], "For": [3, 25, 33, 41, 44, 89, 99, 117, 123, 131, 133], "htop": [3, 36], "boolean": [3, 17, 18, 74, 75, 77, 90], "declar": 3, "attribut": [3, 13, 14, 133], "factbas": [3, 13, 14], "swapen": 3, "swapon": 3, "show": [3, 26, 99, 119], "len": 3, "have": [3, 21, 24, 36, 39, 99, 102, 103, 106, 117, 119, 121], "is_swap_en": 3, "found": [2, 3, 44, 54, 58, 78, 99], "given": [3, 19, 64, 65, 75, 89, 99, 118, 119], "findfil": [3, 44, 99], "point": [3, 99], "recurs": [3, 54, 99, 102, 128], "find": [3, 54, 132], "list_of_fil": 3, "somewher": 3, "raw": [3, 75, 99, 119], "rawcommandoutput": 3, "n": [3, 25, 116], "join": [3, 116], "re": [3, 11, 86, 87, 99], "command_output": 3, "design": [4, 25, 40, 131], "follow": [4, 25, 26, 29, 32, 33, 89, 92, 97, 111, 127, 133], "go": [4, 129], "consist": [4, 16], "inventori": [4, 9, 12, 14, 18, 27, 31, 32, 34, 36, 37, 39, 42, 85, 86, 87, 90, 121], "plu": [4, 25], "config": [4, 5, 18, 32, 36, 38, 90, 99, 119, 124], "flag": [4, 7, 18, 44, 89, 90, 119], "now": [4, 25, 86], "add_op": [4, 16], "add_deploi": [4, 11], "done": [4, 89, 99], "run_op": [4, 17], "best": [4, 37, 97, 127], "action": [4, 133], "main": [4, 46, 84, 92, 102, 133], "py": [4, 11, 21, 25, 31, 32, 36, 38, 39, 41, 42, 43, 44, 86, 89, 106, 113, 133], "arguments_typ": 4, "connect": [4, 12, 14, 18, 24, 25, 27, 32, 36, 38, 86, 106, 113, 118, 121, 122], "connector": [4, 12, 14, 25, 26, 35, 87, 89, 99], "fact": [4, 12, 14, 24, 25, 26, 35, 85, 87, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129], "util": [4, 14], "context": [4, 5, 13, 19, 74, 85, 116, 118, 133], "progress": 4, "allargu": [5, 14, 16, 18], "metaargu": 5, "executionargu": 5, "str": [5, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 21, 24, 29, 32], "argumentmeta": 5, "descript": [5, 14, 19, 24, 29, 32, 75, 97, 127, 129], "callabl": [5, 7, 11, 13, 14, 16, 18, 19, 24], "typeddict": 5, "generate_env": 5, "pop_global_argu": 5, "keys_to_check": 5, "list": [5, 13, 14, 15, 16, 18, 19, 21, 24, 26, 27, 33, 41, 42, 46, 47, 52, 54, 55, 59, 60, 62, 66, 72, 75, 76, 82, 84, 86, 87, 89, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 106, 107, 109, 110, 111, 112, 116, 119, 120, 124, 126, 127, 129, 132, 133], "pop": 5, "keyword": [5, 24, 32, 99, 116], "prefer": 5, "order": [5, 15, 86, 87], "direct": [5, 25, 92], "being": [5, 99], "pyinfraoper": [6, 16], "p": [6, 16, 99], "protocol": [6, 74, 103, 118], "src": [7, 58, 89, 92, 93, 97, 99, 102, 106, 113, 119, 127, 129, 133], "dest": [7, 89, 99, 102, 106, 113, 133], "pyinfracommand": [7, 18], "connector_argu": 7, "func_kwarg": 7, "maskstr": 7, "quotestr": 7, "obj": [7, 9, 11, 16, 17, 19], "rsynccommand": 7, "bit": [7, 19, 99], "_separ": 7, "get_masked_valu": 7, "get_raw_valu": 7, "make_formatted_string_command": 7, "helper": 7, "script": [7, 25, 35, 48, 78, 90, 123], "split": [7, 21], "shlex": 7, "each": [7, 24, 27, 36, 44, 63, 86, 89, 119], "curl_command": 7, "curl": [7, 99], "sslf": 7, "o": [7, 36, 43, 44, 52, 82, 94, 111, 119, 131, 133], "configdefault": 8, "get_current_st": 8, "lock_current_st": 8, "reset_locked_st": 8, "set_current_st": 8, "config_st": 8, "connect_timeout": 8, "int": [8, 14, 15, 16, 18, 19, 24, 32], "10": [8, 26, 88, 99, 105, 117, 119], "default_temp_dir": 8, "tmp": [8, 99, 106, 113, 119, 121], "doa": [8, 24], "doas_us": 8, "fail_perc": [8, 18], "ignore_error": [8, 19, 21], "parallel": [8, 9, 24, 25, 29, 30, 36], "preserve_sudo_env": 8, "preserve_su_env": 8, "require_packag": [8, 133], "require_pyinfra_vers": [8, 133], "sh": [8, 24, 25, 35, 93], "sudo_password": 8, "sudo_us": [8, 99, 113], "su_shel": 8, "su_us": 8, "temp_dir": 8, "use_sudo_login": [8, 115], "use_su_login": [8, 115], "check_pyinfra_vers": 8, "check_require_packag": 8, "requirements_config": 8, "connect_al": 9, "all": [5, 9, 11, 15, 16, 17, 24, 26, 27, 32, 34, 35, 36, 39, 41, 42, 43, 53, 58, 73, 87, 89, 90, 91, 92, 93, 97, 98, 99, 106, 109, 112, 113, 119, 126, 127, 129, 131, 133], "write": [9, 27, 35, 44, 87, 90, 99, 118, 119, 133], "paramet": [9, 11, 15, 16, 17, 21], "disconnect_al": 9, "get_all_connector": 10, "get_execution_connector": 10, "come": [11, 119], "form": [11, 99], "disk": [11, 119, 128], "eg": [11, 13, 25, 51, 89, 92, 99, 103, 121, 123, 125], "latter": 11, "usabl": 11, "across": [11, 17, 37, 130, 133], "extens": [11, 99, 103], "creation": [11, 116], "openstack": 11, "deploy_func": 11, "prepar": [11, 16, 18, 36, 99], "add": [11, 16, 25, 26, 36, 88, 91, 92, 93, 96, 97, 99, 101, 102, 103, 105, 106, 109, 110, 112, 113, 118, 119, 121, 127, 129], "ie": [11, 13, 16, 32, 35, 89, 97, 127, 129], "pyinfra_": 11, "packag": [11, 31, 35, 36, 40, 43, 44, 45, 47, 49, 50, 51, 55, 56, 64, 66, 67, 68, 69, 72, 76, 81, 85, 86, 87, 88, 89, 133], "insid": [11, 41, 110, 133], "wide": 11, "argumenttypeerror": 12, "pyinfraerror": 12, "typeerror": 12, "when": [12, 14, 21, 24, 25, 26, 85, 86, 89, 92, 97, 99, 102, 103, 119, 123, 127, 129, 133], "invalid": 12, "connecterror": 12, "fail": [12, 18, 36, 73, 88], "connectordatatypeerror": 12, "ha": [12, 24, 26, 46, 74, 75, 96, 119, 132, 133], "deployerror": 12, "sub": [12, 98], "facterror": 12, "gather": [12, 87], "stage": [12, 18, 36, 39], "unabl": 12, "facttypeerror": 12, "factvalueerror": 12, "valueerror": 12, "inventoryerror": 12, "relat": [12, 75, 118], "noconnectorerror": 12, "request": [12, 35, 40, 41, 99, 132], "miss": 12, "nogrouperror": [12, 15], "keyerror": 12, "nohosterror": [12, 15], "operationtypeerror": 12, "operationvalueerror": 12, "diff": [13, 16, 86, 87], "desir": [13, 36, 86, 118], "produc": 13, "final": 13, "note": [2, 13, 25, 30, 74, 92, 96, 97, 99, 101, 105, 111, 115, 118, 119, 126, 127, 130], "doe": [13, 54, 74, 99, 105, 110, 118, 119], "out": [13, 24, 25, 27, 36, 44, 90, 99, 133], "give": [13, 110, 119], "me": 13, "ip": [13, 33, 80, 98, 99, 103], "b": 13, "while": [13, 78, 130], "static": [13, 15, 18], "iter": [13, 14, 15, 18, 24, 119], "process_pipelin": 13, "shell_execut": 13, "shortfactbas": [13, 14], "process_data": 13, "cl": 13, "ensure_host": 13, "apply_failed_host": 13, "get_host_fact": 13, "get_short_fact": 13, "short_fact": 13, "connector_cl": 14, "ssh": [14, 21, 25, 33, 35, 77, 86, 89, 90, 99, 103, 119], "sshconnector": 14, "thin": 14, "link": [14, 44, 90, 102, 117, 119, 123], "up": [14, 38, 86, 98, 99, 119, 121], "check_can_rsync": 14, "reason": [14, 36, 130], "show_error": 14, "raise_except": [14, 90], "connector_data": 14, "current_deploy_data": 14, "current_deploy_kwarg": 14, "current_deploy_nam": 14, "current_op_deploy_data": 14, "current_op_global_argu": 14, "current_op_hash": 14, "in_deploi": 14, "instead": [14, 16, 24, 92, 99, 110, 119, 133], "disconnect": [14, 18, 36], "executing_op_hash": 14, "get_deploy_data": 14, "name_or_cl": 14, "get": [14, 15, 19, 20, 24, 25, 27, 35, 36, 37, 41, 44, 59, 87, 89, 90, 92, 97, 127, 133], "cach": [14, 19, 92], "get_temp_filenam": 14, "hash_kei": 14, "hash_filenam": 14, "properti": [14, 16, 19, 92, 128], "group_data": [14, 39, 41, 43, 89], "host_data": 14, "in_callback_op": 14, "in_op": 14, "init": [14, 18, 25, 48, 78, 86, 94, 108, 119, 123, 124], "log": [14, 25, 103, 133], "messag": [14, 99, 116], "log_func": 14, "bound": [14, 32], "logger": [14, 38, 133], "warn": [14, 26, 99], "log_styl": 14, "loop": 14, "loop_posit": 14, "nested_executing_op_hash": 14, "noop": [14, 25], "print_prefix": 14, "rsync": [14, 90], "style_print_prefix": 14, "condit": [14, 36, 133], "hostdata": 14, "attrdata": 14, "search": [14, 117], "kei": [14, 20, 24, 29, 32, 44, 46, 52, 58, 75, 82, 89, 90, 98, 102, 119, 121, 129], "override_data": [14, 15], "extract_callable_data": 14, "union": [14, 24], "names_data": 15, "store": [15, 89, 99], "access": [15, 26, 41, 89, 110, 120, 133], "dictionari": [15, 19, 24, 33, 59, 75, 77, 99, 110], "ssh_": 15, "deprec": [15, 26, 59, 75, 92], "winrm_": 15, "map": [15, 24, 74, 77, 98, 118, 125], "get_data": 15, "attach": [15, 89, 98, 119], "get_group": 15, "belong": [15, 66, 103], "get_group_data": 15, "singl": [15, 25, 32, 36, 53, 73, 99], "get_groups_data": 15, "aggreg": 15, "var": [15, 25, 40, 73, 92, 99, 117, 133], "twice": 15, "last": 15, "hold": [15, 111], "get_host": [15, 133], "get_host_data": 15, "hostnam": [15, 25, 32, 33, 41, 44, 63, 85, 87, 89, 90, 106, 113, 121, 125, 133], "get_override_data": 15, "iter_activated_host": 15, "over": [15, 25, 32, 36, 86, 99, 121], "activ": [15, 18, 32, 77, 89, 119], "iter_active_host": 15, "len_activated_host": 15, "number": [15, 24, 32, 59, 74, 85, 119, 133], "len_active_host": 15, "make_hosts_and_group": 15, "extract_name_data": 15, "core": [16, 76, 78], "wrapper": 16, "intercept": 16, "against": [16, 25, 26, 29, 86, 87, 89, 99, 106, 113], "run": [16, 17, 24, 25, 26, 27, 29, 30, 34, 35, 36, 38, 40, 42, 62, 73, 80, 86, 91, 92, 93, 94, 97, 98, 99, 104, 108, 109, 112, 115, 116, 117, 118, 119, 121, 122, 123, 124, 126, 127, 129, 133], "later": 16, "__main__": 16, "operationmeta": [16, 18], "hash": [16, 19, 54, 99], "is_chang": 16, "did_chang": [16, 36, 133], "did_error": 16, "did_not_chang": 16, "did_succe": 16, "is_complet": 16, "set_complet": 16, "combined_output": 16, "stderr_lin": 16, "stdout_lin": 16, "op_func": 16, "attach_arg": 16, "op_meta": [16, 19], "ensure_shared_op_meta": 16, "op_hash": [16, 17, 18], "op_ord": [16, 18], "global_argu": [16, 18], "execute_immedi": 16, "generate_operation_nam": 16, "func": [16, 19], "get_operation_name_from_func": 16, "is_idempot": 16, "idempotent_notic": 16, "is_deprec": 16, "deprecated_for": 16, "_set_in_op": 16, "simpl": [16, 25, 36, 86, 99, 119, 130], "turn": 16, "represent": 16, "su": [16, 24, 109], "_user": 16, "env": [16, 25, 39, 110], "solve_operation_consist": 16, "run_host_op": 17, "serial": 17, "no_wait": 17, "manner": 17, "wait": [17, 90, 117], "between": [17, 26, 32, 54, 99, 119, 133], "basestatecallback": 18, "host_before_connect": 18, "host_connect": 18, "host_connect_error": 18, "host_disconnect": 18, "operation_end": 18, "operation_host_error": 18, "operation_host_start": 18, "operation_host_success": 18, "operation_start": 18, "check_for_chang": 18, "activate_host": 18, "add_callback_handl": 18, "current_deploy_filenam": 18, "current_exec_filenam": 18, "current_op_file_numb": 18, "current_stag": 18, "statestag": 18, "cwd": [18, 21], "fail_host": 18, "hosts_to_fail": 18, "activated_count": 18, "get_meta_for_host": 18, "statehostmeta": 18, "get_op_data_for_host": 18, "stateoperationhostdata": 18, "get_op_meta": 18, "stateoperationmeta": [18, 19], "get_op_ord": 18, "get_results_for_host": 18, "statehostresult": 18, "get_warning_count": 18, "increment_warning_count": 18, "initial_limit": 18, "initialis": 18, "is_execut": 18, "is_host_in_limit": 18, "limit": [18, 42, 75, 103, 113, 119], "pool": [18, 44], "print_fact_info": 18, "print_fact_input": 18, "print_fact_output": 18, "print_noop_info": 18, "set_op_data_for_host": 18, "op_data": 18, "set_stag": 18, "should_check_for_chang": 18, "should_raise_failed_host": 18, "stage_warn": 18, "trigger_callback": 18, "method_nam": 18, "op": 18, "ops_chang": 18, "ops_no_chang": 18, "error_op": 18, "ignored_error_op": 18, "partial_op": 18, "success_op": 18, "command_gener": 18, "operation_meta": 18, "parent_op_hash": 18, "intenum": 18, "enumer": 18, "5": [18, 26, 32, 33, 63, 123], "4": [18, 33, 76, 92, 103, 120, 123], "format_except": 19, "e": [19, 35, 87, 98, 102, 119, 128, 133], "get_call_loc": 19, "frame_offset": 19, "get_caller_frameinfo": 19, "get_file_io": 19, "mode": [19, 20, 26, 35, 54, 75, 77, 85, 99, 133], "rb": 19, "processor": 19, "open": [19, 106, 119, 131], "close": 19, "leav": [19, 29, 92], "alon": 19, "cache_kei": 19, "get_file_path": 19, "get_file_sha1": 19, "calcul": 19, "sha1": [19, 54, 99], "buffer": [19, 24], "handl": [19, 86, 99, 103, 119], "larger": 19, "get_kwargs_str": 19, "get_operation_order_from_stack": 19, "get_path_permissions_mod": 19, "pathnam": 19, "permiss": [19, 85, 96, 99], "integ": [19, 99], "get_templ": 19, "jinja2": [19, 99], "templat": [19, 90, 113, 119, 125, 133], "log_error_or_warn": 19, "continue_on_error": 19, "log_host_command_error": 19, "timeout": [19, 24, 117], "log_operation_start": 19, "op_typ": 19, "prefix": [19, 24, 74, 89, 103], "make_hash": 19, "arbitrari": [19, 25, 106, 113], "nest": 19, "id": [19, 29, 40, 46, 55, 58, 75, 76, 92, 97, 105, 127], "memoiz": 19, "print_host_combined_output": 19, "raise_if_bad_typ": 19, "type_": 19, "message_prefix": 19, "sha1_hash": 19, "try_int": 19, "contextobject": 20, "contextmanag": 20, "specif": [20, 24, 25, 26, 34, 60, 98, 102, 106, 119, 122, 133], "throughout": 20, "alwai": [20, 36, 86, 91, 92, 93, 96, 97, 98, 99, 106, 109, 110, 112, 113, 114, 115, 116, 117, 119, 121, 122, 125, 126, 127, 129, 133], "context_cl": 20, "isset": 20, "reset": 20, "set_bas": 20, "localcontextobject": 20, "init_base_class": 20, "includ": [21, 33, 37, 42], "splitlin": 21, "subprocess": [21, 25, 31], "progress_spinn": 22, "item": [22, 75, 119], "prefix_messag": 22, "its": [24, 25, 35, 46, 124, 128], "With": 24, "avoid": 24, "clash": 24, "_sudo_us": [24, 85, 89, 133], "non": [24, 99], "root": [24, 28, 74, 75, 99, 110, 118], "_use_sudo_login": [24, 85], "login": [24, 85, 113], "_sudo_password": 24, "password": [24, 32, 43, 75, 89, 99, 106, 113, 119], "need": [24, 25, 26, 32, 38, 40, 85, 86, 88, 92, 117, 118, 119, 132, 133], "prompt": 24, "_preserve_sudo_env": [24, 85], "preserv": [24, 85], "environ": [24, 37, 43, 75, 85, 87, 98, 99, 110, 111], "_su_us": 24, "_use_su_login": 24, "_preserve_su_env": 24, "_su_shel": 24, "_su": 24, "onli": [24, 25, 26, 31, 36, 44, 73, 75, 86, 89, 97, 99, 103, 111, 119, 123, 127, 129, 133], "under": [24, 89, 99], "linux": [24, 26, 31, 35, 48, 75, 86, 92, 97, 99, 109, 119, 123, 127, 131, 133], "nologin": 24, "similar": 24, "_doa": 24, "_doas_us": 24, "my": [24, 25, 32, 34, 40, 86, 125], "secret": [24, 37, 58, 99], "_shell_execut": [24, 133], "_chdir": 24, "switch": [24, 133], "befor": [24, 36, 38, 40, 91, 92, 93, 97, 99, 102, 109, 112, 118, 119, 121, 126, 127, 129], "_env": [24, 87], "_success_exit_cod": 24, "exit": [24, 25, 78], "_timeout": 24, "_get_pti": 24, "pseudotti": 24, "_stdin": 24, "send": [24, 131], "stdin": 24, "bootstrap": [24, 133], "param": 24, "openssl": 24, "dhparam": 24, "pem": 24, "4096": [24, 46, 58], "ssl": [24, 99], "cert": 24, "_ignore_error": 24, "_continue_on_error": 24, "continu": [24, 35, 99], "after": [24, 25, 99, 102, 106, 117], "_if": [24, 36, 133], "_parallel": 24, "batch": 24, "_run_onc": 24, "onc": [24, 36, 38], "first": [24, 26, 36, 40, 86, 89, 99, 117], "_serial": [24, 87], "rather": [24, 102, 110, 133], "than": [24, 98, 102, 110, 133], "extrem": [25, 87], "power": [25, 87], "page": [25, 26, 27, 86, 87, 99, 132], "usag": [25, 35], "net": [25, 32, 41, 86, 89, 121, 125], "comma": 25, "separ": [25, 42, 89, 99], "deploy_web": 25, "deploy_db": 25, "home": [25, 44, 99, 102, 119, 121, 128, 133], "exec": [25, 86], "hello": [25, 46, 58, 86, 116, 119, 120], "world": [25, 86, 116, 120], "linuxnam": [25, 44, 133], "By": [25, 89, 92, 111, 117, 119], "high": 25, "inform": [25, 43, 44, 46, 51, 54, 55, 58, 72, 75, 76, 99, 133], "increas": [25, 26], "v": [25, 75, 99, 119], "well": [25, 27, 37, 40, 48], "x": [25, 35, 92, 123, 131], "alreadi": [25, 86, 92, 99, 102, 110, 121], "vv": 25, "vvv": 25, "both": [25, 27, 54, 86, 89, 99, 133], "support": [25, 26, 78, 88, 99, 123], "rang": [25, 98], "load": [25, 38, 89, 90, 119, 133], "cento": [25, 26, 52, 75, 82, 86, 97, 99, 123, 127, 133], "8": [25, 26, 29, 30, 70, 75, 86, 103, 119, 129], "time": [25, 35, 36, 38, 75, 86, 89, 92, 99, 102, 117, 119, 130, 133], "match": [25, 36, 54, 89, 99, 118], "glob": [25, 89], "style": [25, 26, 89], "pattern": [25, 37, 54, 87, 133], "app_serv": [25, 41, 89], "db": [25, 36, 41, 89, 113], "my_command_goes_her": 25, "right": [25, 133], "hand": [25, 132], "side": [25, 26, 37, 75, 99], "One": [25, 41, 88, 130], "top": 25, "featur": [25, 26, 41, 132], "abil": 25, "real": 25, "perfect": [25, 38], "larg": [25, 99], "elasticsearch": [25, 85], "cluster": 25, "stream": 25, "achiev": [25, 40, 43, 133], "easili": 25, "tail": 25, "builtin": 25, "here": [2, 25, 36, 37, 41, 87, 92, 121, 130, 133], "ensur": [25, 36, 40, 86, 88, 91, 92, 93, 95, 96, 97, 99, 101, 102, 107, 109, 110, 111, 112, 116, 119, 126, 127, 129, 133], "ubuntu": [25, 26, 29, 30, 44, 46, 75, 80, 86, 89, 92, 105, 123, 133], "updat": [2, 25, 26, 31, 36, 40, 90, 95, 96, 99, 101, 102, 103, 106, 107, 110, 111, 113, 118, 119, 122, 123, 133], "inventory2": 25, "yum": [25, 44, 90, 99, 133], "box": [25, 27], "control": [25, 29, 32, 85, 87, 98, 99, 110, 117, 123, 133], "boot": [25, 94, 104, 108, 117, 119, 122, 124], "coupl": 25, "wai": [25, 87, 120, 124, 133], "adhoc": 25, "assum": [25, 40, 89, 92, 96, 99, 101, 102, 119], "reboot_timeout": [25, 119], "delai": [25, 32, 36, 119], "bash_profil": [25, 115], "profil": 25, "bash": [25, 75, 119], "sourc": [25, 46, 51, 92, 97, 99, 102, 103, 127, 129, 130], "complet": [25, 36, 99, 119], "zsh": 25, "were": [25, 131], "_pyinfra_complet": 25, "bash_sourc": 25, "zsh_sourc": 25, "guarante": 26, "offer": [26, 78], "where": [26, 99, 103, 111, 117, 121, 133], "semant": [26, 47], "rule": [26, 60, 90], "mean": [26, 32, 41, 86, 89, 99, 119, 133], "break": [26, 99, 133], "minor": [26, 47, 75], "Such": 26, "major": [26, 35, 47, 75, 97, 127], "due": 26, "next": [26, 36, 86], "releas": [26, 35, 75, 97, 99, 127, 129], "semver": 26, "latest": [26, 35, 88, 91, 92, 93, 95, 96, 97, 101, 107, 110, 111, 112, 120, 127, 129, 130], "previou": [26, 36], "new": [26, 27, 29, 32, 44, 86, 87, 90, 98, 99, 102, 113, 119, 132], "patch": [26, 47], "bug": 26, "fix": [26, 35], "work": [26, 35, 40, 54, 74, 89, 99, 102, 110, 111, 133], "anywher": [26, 89], "mac": [26, 93, 131], "window": [26, 35, 131], "To": [26, 35, 36, 86, 99, 119], "debug": [26, 36, 89], "explicitli": 26, "gevent": 26, "aim": [26, 36], "unix": [26, 131], "develop": [26, 35, 39, 88], "distro": [26, 92], "18": [26, 75, 86], "20": [26, 75, 123, 133], "debian": [26, 75, 92, 123], "9": [26, 76], "7": [26, 55, 88, 97, 127], "fedora": [26, 75, 123], "33": 26, "alpin": [26, 29, 30, 91, 98], "bsd": [26, 48, 94, 111, 119], "flavour": 26, "openbsd": [26, 111, 119], "6": [26, 33, 88, 123], "freebsd": [26, 111], "12": [26, 55], "netbsd": [26, 111], "hardenedbsd": 26, "11": 26, "dragonflybsd": 26, "opensus": [26, 84, 129], "leap15": 26, "tumblewe": 26, "maco": [26, 31, 35, 75, 86], "15": [26, 92], "posix": [26, 119], "move": [26, 36, 99, 121], "lot": 26, "old": [26, 35, 99], "legaci": 26, "encount": 26, "seen": 26, "changelog": 26, "bring": 26, "again": [26, 36], "v2": [26, 129], "sens": 26, "replac": [26, 90], "wa": [26, 99, 121, 130], "confus": 26, "someshel": 26, "do": [27, 32, 36, 86, 92, 99, 119, 120, 133], "thing": [27, 36, 38, 86, 89], "vagrant": [27, 121], "check": [27, 32, 44, 54, 73, 78, 90, 91, 92, 93, 97, 105, 112, 119, 121, 127, 129, 132], "guid": [27, 44, 86, 87, 90], "popular": [27, 90], "chroot": 27, "dockerssh": 27, "allow": [28, 29, 30, 92, 113, 116, 118, 120, 133], "anoth": [28, 34, 40, 75, 121, 133], "imag": [29, 30, 53, 86, 90, 105], "save": [29, 86, 89, 99, 125, 133], "bionic": [29, 30, 75, 92], "2beb8c15a1b1": 29, "interact": [29, 32], "docker_identifi": 29, "beta": 30, "remotehost": 30, "compat": [31, 110, 119, 132], "ident": [32, 40, 119], "ssh_hostnam": [32, 33], "ssh_port": 32, "port": [32, 74, 90, 98, 99, 103, 106, 113, 115, 119, 121], "ssh_user": [32, 33, 89], "ssh_password": 32, "ssh_kei": [32, 89], "ssh_key_password": [32, 89], "ssh_allow_ag": 32, "agent": [32, 90, 130], "ssh_look_for_kei": 32, "look": [32, 36], "privat": 32, "ssh_forward_ag": 32, "forward": [32, 103], "ssh_config_fil": 32, "ssh_known_hosts_fil": 32, "known_host": [32, 99, 102, 121], "ssh_strict_host_key_check": 32, "strict": 32, "ssh_paramiko_connect_kwarg": 32, "paramiko": 32, "sshclient": 32, "ssh_connect_retri": 32, "tri": [32, 99], "ssh_connect_retry_min_delai": 32, "lower": 32, "random": [32, 40], "retri": 32, "float": 32, "ssh_connect_retry_max_delai": 32, "upper": 32, "share": [32, 39, 87, 98], "usernam": [32, 41, 106, 113], "ssh_usernam": [], "fetch": [33, 41, 85, 92], "flatten": 33, "json": [33, 41, 53], "server_group": 33, "server_group_node_ip": 33, "would": [33, 36, 39, 119], "extra": [33, 99, 103], "statu": [34, 40, 61, 65, 73, 74, 78, 79, 116], "vm": [34, 39, 119, 128], "thank": 35, "third": 35, "parti": 35, "pull": [35, 89, 98, 102], "help": [35, 78, 86], "expand": [35, 66, 99], "growth": 35, "ad": [35, 87, 89, 99, 115, 117, 130, 133], "There": [35, 133], "per": [35, 89, 122], "track": [35, 102, 120], "off": [35, 74], "unless": [35, 36, 86, 92, 99, 119, 133], "virtualenv": [35, 90], "choic": 35, "m": [35, 119], "venv": [35, 90], "pyenv": 35, "clone": [35, 102], "repo": [35, 40, 57, 84, 89, 90, 99], "git": [35, 44, 86, 89, 90], "github": [35, 37, 39, 89, 93, 102, 129, 130, 131, 133], "com": [35, 39, 40, 44, 46, 58, 88, 89, 92, 93, 97, 99, 102, 119, 121, 127, 128, 129, 131], "fizzadar": [39, 89, 102], "edit": [35, 88, 99, 102, 119, 124], "cd": 35, "pip": [35, 44, 86, 90], "suit": 35, "part": [35, 59, 99, 119], "pytest": 35, "cov": 35, "coverag": 35, "expect": [35, 36, 78, 115], "drop": [35, 103, 113], "overal": 35, "project": [35, 38, 42, 93, 131], "select": [35, 63, 88], "e2": 35, "yet": [2, 35], "end_to_end_loc": 35, "end_to_end_ssh": 35, "end_to_end_dock": 35, "sphinx": 35, "doc": [35, 93, 99, 132], "view": 35, "localhost": [35, 63, 99, 106], "8000": 35, "http": [35, 39, 40, 46, 52, 78, 82, 84, 88, 92, 93, 96, 97, 99, 100, 101, 102, 111, 120, 127, 129], "d": [35, 48, 78, 92, 94, 99, 122, 123, 124], "lint": 35, "flake8": 35, "black": 35, "isort": 35, "codestyl": [], "just": [38, 89, 93, 98], "five": 36, "phase": [36, 133], "determin": [36, 44, 86], "cleanup": 36, "step": [36, 86], "through": [36, 99], "goal": 36, "about": [36, 54, 131, 133], "ll": 36, "depth": 36, "explain": 36, "why": 36, "critic": 36, "databas": [36, 42, 63, 70], "webserv": [36, 42, 119], "web_serv": [36, 41, 42], "web": [36, 41, 42, 99, 118], "01": 36, "02": 36, "03": 36, "db_server": [36, 41, 42, 89], "And": [36, 39, 42], "iftop": [36, 85, 86], "cache_tim": [36, 92, 99], "3600": [36, 92], "postgr": [36, 44, 90, 133], "postgresql": [36, 44, 70, 89, 90, 113], "realli": 36, "slow": 36, "But": 36, "stop": [36, 86, 90, 98, 123], "until": [36, 92, 97, 98, 127, 129], "onto": 36, "sequenti": 36, "individu": [36, 86, 89, 133], "pg_hba": 36, "made": [36, 38, 86], "immut": [36, 133], "arch": [36, 44, 109, 111, 133], "absolut": [36, 133], "sure": [36, 132, 133], "let": [36, 39], "bad": 36, "highlight": [36, 37, 133], "problem": [36, 116], "site": [36, 110], "rememb": [36, 99], "figur": 36, "correct": 36, "detail": [36, 75, 89, 113, 125, 133], "explan": 36, "evalu": 36, "becom": [36, 89, 125], "solut": [36, 88], "reli": 36, "second": [36, 86, 92, 99, 117, 119], "case": [36, 86, 87, 97, 99, 111, 126, 127], "noth": [36, 86], "reload": [36, 94, 108, 117, 119, 122, 123, 124], "outcom": 36, "remove_default_sit": 36, "sinc": [36, 99, 119], "exactli": 36, "checkout": [37, 102], "properli": 37, "introduc": 37, "folder": [37, 99, 102, 133], "structur": [37, 74, 111], "common": [37, 87, 92, 99, 133], "practic": 37, "client": 37, "asset": 37, "dynam": 37, "role": [37, 70, 74, 90, 133], "often": 38, "pre": 38, "compil": [38, 88], "place": [38, 99, 103], "perform": 38, "kind": [38, 133], "yarn": 38, "alongsid": 38, "pick": 38, "sai": [39, 133], "app": [39, 52, 55, 82, 89, 133], "wish": 39, "product": [39, 89], "dev": [39, 59, 74, 75], "good": [39, 86, 133], "layout": 39, "git_repo": 39, "differ": [32, 39, 44, 87, 99, 119], "git_branch": 39, "master": [39, 98, 102, 115], "around": 40, "idea": 40, "sometim": 40, "feed": 40, "mid": [40, 92, 97, 127, 129], "zeroti": 40, "authent": [40, 133], "authorize_serv": 40, "cat": 40, "lib": [40, 92], "public": [40, 58, 119], "assert": [40, 116], "ok": [40, 116], "server_id": 40, "author": 40, "respons": 40, "post": 40, "raise_for_statu": 40, "back": [40, 99], "biggest": 41, "regular": 41, "result": [41, 133], "get_serv": 41, "mycompani": 41, "append": [41, 99, 103], "initi": 41, "without": [41, 91, 92, 93, 95, 96, 97, 99, 101, 107, 110, 112, 124, 127, 129], "master_db_serv": 41, "db_user": 41, "involv": [42, 99], "task": [42, 129, 133], "everywher": 42, "web1": 42, "web2": 42, "web3": 42, "db1": 42, "db2": 42, "db3": 42, "dbserver": 42, "encrypt": [43, 119], "sensit": [43, 97, 111, 126, 127], "privi": 43, "getpass": 43, "get_secret": 43, "encrypted_secret": 43, "pleas": [43, 59, 75, 131, 132], "peek": 43, "my_secret": 43, "altern": [43, 73, 89, 117], "might": 43, "top_secret_password": 43, "alter": [44, 63, 113], "popul": 44, "begin": [44, 54, 99], "test": [2, 44, 86, 88, 102, 111, 119, 130, 133], "myhost": 44, "date": [44, 86, 92, 99], "openssh": 44, "myhost2": 44, "deb": [44, 46, 90], "debpackag": [44, 92], "anotherfil": 44, "txt": [44, 121, 133], "leverag": 44, "namespac": 44, "shortcut": [44, 59, 75], "sidebar": 44, "apk": [44, 90], "apkpackag": [44, 91], "aptkei": [44, 92], "aptsourc": [44, 92], "brew": [44, 90], "brewcask": [44, 93], "brewpackag": [44, 93], "brewtap": [44, 93], "brewvers": [44, 93], "bsdinit": [44, 90], "rcdstatu": [44, 94], "cargo": [44, 90], "cargopackag": [44, 95], "choco": [44, 90], "chocopackag": [44, 96], "chocovers": 44, "debarch": 44, "dnf": [44, 86, 90, 127], "dnfrepositori": 44, "dockercontain": [44, 98], "dockerimag": 44, "dockernetwork": [44, 98], "dockersinglemixin": 44, "dockersysteminfo": 44, "finddirectori": 44, "findinfil": [44, 99, 119, 121], "findlink": [44, 123], "md5file": [44, 99], "sha1fil": [44, 99], "sha256fil": [44, 99], "socket": 44, "gem": [44, 90, 96], "gempackag": [44, 101], "gitbranch": [44, 102], "gitconfig": [44, 102], "gittrackingbranch": [44, 102], "gpg": [44, 46, 52, 82, 92, 97, 127, 129], "gpgkei": [44, 52, 82, 92, 97, 127, 129], "gpgsecretkei": 44, "hardwar": 44, "blockdevic": 44, "cpu": 44, "ipv4address": 44, "ipv4addr": 44, "ipv6address": 44, "ipv6addr": 44, "memori": 44, "networkdevic": 44, "iptabl": [44, 90], "ip6tableschain": [44, 103], "ip6tablesrul": [44, 103], "iptableschain": [44, 103], "iptablesrul": [44, 103], "launchd": [44, 90], "launchdstatu": [44, 104], "lxd": [44, 76, 90, 119, 120], "lxdcontain": [44, 105], "mysql": [44, 90], "mysqldatabas": [44, 106], "mysqlusergr": [44, 106], "mysqlus": [44, 106], "npm": [44, 90], "npmpackag": [44, 107], "openrc": [44, 90], "openrcen": [44, 108], "openrcstatu": [44, 108], "pacman": [44, 90], "pacmanpackag": [44, 109], "pacmanunpackgroup": [44, 109], "pip3packag": 44, "pippackag": [44, 110], "pkg": [44, 90, 91, 92, 93, 95, 96, 97, 101, 107, 109, 110, 127, 129], "pkgpackag": [44, 111], "pkgin": [44, 90], "pkginpackag": [44, 112], "postgresdatabas": [44, 113], "postgresrol": [44, 113], "postgresqldatabas": 44, "postgresqlrol": 44, "rpm": [44, 52, 82, 84, 90], "rpmpackag": [44, 97, 127, 129], "rpmpackageprovid": [44, 97, 127], "selinux": [44, 90], "filecontext": [44, 118], "filecontextmap": [44, 118], "seboolean": [44, 118], "seport": [44, 118], "crontab": [44, 90, 99], "hasgui": 44, "kernel": [44, 92, 119], "kernelmodul": [44, 119], "kernelvers": 44, "linuxdistribut": [44, 97, 123, 127], "linuxgui": 44, "lsbreleas": 44, "macosvers": 44, "mount": [44, 59, 90], "osvers": [44, 92, 111], "securitylimit": 44, "sysctl": [44, 90], "tmpdir": 44, "snap": [44, 90], "snapbasefact": 44, "snappackag": [44, 120], "systemden": [44, 122], "systemdstatu": [44, 122], "sysvinit": [44, 90], "initdstatu": [44, 123], "upstart": [44, 90], "upstartstatu": [44, 124], "vzctl": [44, 90], "openvzcontain": [44, 125], "xbp": [44, 90], "xbpspackag": [44, 126], "yumrepositori": 44, "zypper": [44, 90], "zypperrepositori": 44, "package_nam": [45, 47, 49, 50, 51, 56, 64, 66, 67, 68, 69, 72, 81], "keychain": [46, 58], "length": [46, 58], "uid": [46, 58, 75, 119], "oxygem": [46, 58], "url": [46, 58, 92, 93, 97, 99, 102, 115, 127, 129], "archiv": [46, 51], "org": [46, 52, 55, 78, 82, 84, 88, 92, 96, 97, 100, 101, 111, 127, 129], "distribut": [46, 75, 84, 123, 133], "trusti": 46, "compon": 46, "multivers": 46, "cask": [47, 90], "tap": [47, 90], "initd_statu": 48, "rc": [48, 94, 108, 122, 123, 124], "unlik": 48, "behav": 48, "trust": 48, "chocolatei": [50, 96], "architectur": [51, 75], "repositori": [51, 52, 82, 84, 91, 92, 93, 97, 102, 109, 111, 112, 126, 127, 129, 133], "amd64": [51, 88], "dpkg": 51, "releasev": [52, 82, 84], "baseurl": [52, 82, 84, 97, 127, 129], "mirror": [52, 82, 111], "contentdir": [52, 82], "basearch": [52, 82, 97, 127], "gpgcheck": [52, 82, 97, 127, 129], "pki": [52, 82], "centosoffici": [52, 82], "object_id": 53, "inspect": 53, "network": [53, 59, 90], "content": [54, 99, 118, 124], "marker": [54, 99], "possibli": [54, 73], "xrai": 54, "alpha": [54, 99], "644": [54, 85, 99, 133], "size": [54, 75, 128], "3928": 54, "quote_path": 54, "interpolate_vari": [54, 99, 119], "text": [54, 99, 133], "grep": [54, 99], "link_target": 54, "md5": [54, 99], "sha1sum": [54, 99], "doest": 54, "sha256": [54, 99], "keyr": 58, "fingerprint": 58, "abc": 58, "devic": [59, 75, 119], "sda1": 59, "39489508": 59, "used_perc": 59, "836392": 59, "40325900": 59, "interfac": [59, 103], "ipv4": [59, 98], "address": [59, 98, 99], "eth0": 59, "127": 59, "ipv6": [59, 98], "fe80": 59, "a00": 59, "27ff": 59, "mb": 59, "ipv4_address": 59, "ipv6_address": 59, "easier": 59, "tabl": [60, 63, 103, 106], "filter": [60, 98, 99, 103], "ip6tabl": [60, 103], "chain": [60, 90], "polici": [60, 103, 118], "prerout": [60, 103], "jump": [60, 103], "dnat": [60, 103], "mysql_us": [63, 106], "mysql_password": [63, 106], "mysql_host": [63, 106], "mysql_port": [63, 106], "associ": 63, "character_set": 63, "latin1": 63, "collation_nam": 63, "latin1_swedish_ci": 63, "grant": [63, 106], "privileg": [63, 74, 85, 90, 113, 118], "pyinfra_stuff": [63, 70, 106, 113], "insert": [63, 103], "max_connect": [63, 106], "runlevel": [65, 108, 123, 124], "virtual": [66, 110, 129], "psql_user": [70, 71, 113], "psql_password": [70, 71, 113], "psql_host": [70, 71, 113], "psql_port": [70, 71, 113], "metadata": [70, 133], "encod": [70, 113], "utf8": [70, 113], "collat": [70, 106], "en_u": [70, 75], "utf": [70, 75, 119], "ctype": 70, "super": 70, "createrol": [70, 113], "createdb": [70, 113], "my_packag": 72, "capabl": [72, 75], "system_u": 74, "object_r": 74, "default_t": 74, "s0": 74, "tcp": [74, 103, 118], "udp": [74, 103, 118], "dccp": [74, 118], "sctp": [74, 118], "been": 74, "policycoreutil": 74, "definit": 74, "accord": 75, "unam": [75, 92], "cron": [75, 119], "minut": [75, 119], "hour": [75, 119], "month": [75, 119], "day_of_month": [75, 119], "day_of_week": [75, 119], "special_tim": [75, 119], "daili": [75, 77, 119], "datetim": 75, "gui": [75, 99], "module_nam": 75, "live": [75, 103], "gentoo": [75, 123], "04": [75, 86, 105, 133], "release_meta": [75, 97, 127], "codenam": 75, "focal": 75, "id_lik": 75, "c": [75, 88], "lsb_releas": 75, "lt": 75, "mv2": 75, "ext4": 75, "rw": 75, "relatim": 75, "renam": 75, "secur": [75, 119], "domain": [75, 119], "limit_typ": [75, 119], "soft": [75, 119], "nofil": [75, 119], "1048576": 75, "hard": [75, 99, 119], "memlock": 75, "unlimit": 75, "discov": [75, 87], "inotifi": 75, "max_queued_ev": 75, "16384": 75, "inod": 75, "44565": 75, "360": 75, "user_nam": [75, 77, 122], "comment": [75, 119], "bin": [75, 99, 110, 119], "main_user_group": 75, "user_id": 75, "gid": [75, 119], "main_user_group_id": 75, "lastlog": 75, "last_login_tim": 75, "encrypted_password": 75, "publish": 76, "canon": 76, "j60k4jy0hppjwojw8dzdyc8obxkxujru": 76, "channel": [76, 120], "core18": 76, "core20": 76, "snapd": 76, "user_mod": [77, 122], "unit": [77, 122], "containerd": 77, "timer": [77, 122], "unfortun": 78, "mani": [78, 92], "misbehav": 78, "displai": 78, "refspec": 78, "linuxbas": 78, "lsb_3": 78, "lsb": 78, "iniscrptact": 78, "html": [78, 98, 99], "openvz": [80, 125], "ctid": [80, 125], "666": 80, "ostempl": 80, "autorefresh": 84, "leap": 84, "oss": 84, "md": [84, 129], "faq": 85, "escal": 85, "someus": 85, "ing": [85, 86], "ownership": 85, "stuff": 86, "instruct": [86, 92, 133], "assign": [86, 89], "uptim": 86, "immedi": [86, 133], "quick": [86, 87, 132], "spin": 86, "what": [86, 99, 133], "won": [86, 92, 97, 111, 117, 127, 129], "becaus": [86, 88, 89, 123, 133], "vim": [86, 91, 92, 93, 97, 109, 111, 112, 119, 126, 127, 129], "httpd": 86, "report": [86, 132], "imageid": 86, "reus": 86, "commit": [86, 102], "think": [86, 89, 133], "ansibl": [86, 130], "playbook": 86, "chef": 86, "cookbook": 86, "my_host": 86, "subsequ": 86, "That": 86, "infrastructur": 87, "welcom": 87, "v3": [2, 87], "quickest": 87, "learn": [87, 133], "committ": 87, "hoc": [87, 130], "frequent": 87, "ask": [87, 132], "question": [87, 132], "answer": 87, "commonli": 87, "focu": 87, "index": [87, 89, 133], "terraform": 87, "g": [87, 98, 119, 128, 133], "redistribut": 87, "recommend": [35, 88, 91, 92], "windowsserver2019": 88, "www": [88, 92, 99, 100], "ex": [88, 92, 98], "administr": [88, 96, 117], "perhap": 88, "visual": 88, "studio": 88, "commun": [88, 132], "visualstudio": 88, "microsoft": 88, "desktop": 88, "least": 88, "msvc": 88, "v142": 88, "sdk": [55, 88], "cmake": 88, "atl": 88, "daemon": [89, 122], "data_dict": 89, "install_postgr": 89, "dir": [89, 99], "group_nam": 89, "receiv": 89, "app_us": [89, 133], "myuser": [89, 133], "app_dir": [89, 133], "opt": [89, 98, 133], "rel": [89, 99, 119, 133], "chdir": 89, "basi": 89, "explor": 89, "some_kei": 89, "pretti": 89, "much": [89, 120], "necessari": [90, 99], "reach": 90, "categori": 90, "alphabet": 90, "upgrad": [90, 95, 96, 97, 101, 107, 110, 127, 129], "dist_upgrad": 90, "ppa": 90, "cask_upgrad": 90, "put": 90, "sync": 90, "bare_repo": 90, "worktre": 90, "dump": 90, "sql": 90, "puppet": 90, "file_context": 90, "file_context_map": 90, "modprob": 90, "reboot": 90, "script_templ": 90, "security_limit": 90, "user_authorized_kei": 90, "keyscan": [90, 102], "daemon_reload": 90, "delet": [90, 99], "restart": [90, 94, 104, 108, 117, 119, 122, 123, 124], "unmount": 90, "pin": [91, 92, 93, 95, 96, 97, 101, 107, 109, 110, 127, 129], "asterisk": [91, 92], "idempot": [91, 92, 93, 96, 97, 98, 99, 106, 109, 112, 113, 114, 115, 116, 117, 119, 121, 122, 125, 126, 127, 129], "forc": [91, 92, 98, 99, 102, 119, 121, 125], "whole": 91, "ye": 92, "unmet": 92, "depend": [92, 133], "isn": [92, 97, 127, 129], "wget": [92, 99], "chrome": 92, "dl": [92, 97, 127], "googl": 92, "stable_current_amd64": 92, "emploi": 92, "dist": 92, "keyserv": 92, "keyid": 92, "virtualbox": 92, "oracle_vbox_2016": 92, "asc": 92, "no_recommend": 92, "allow_downgrad": 92, "extra_install_arg": [92, 97, 110, 127, 129], "extra_uninstall_arg": [92, 97, 127, 129], "downgrad": 92, "uninstal": [92, 97, 110, 127, 129], "period": 92, "stamp": 92, "upon": 92, "r": [92, 99, 118], "72": 92, "header": [92, 99], "softwar": 92, "bitcoin": 92, "hardi": 92, "contrib": 92, "auto_remov": 92, "autoremov": 92, "transit": 92, "longer": 92, "unneed": 92, "osx": 93, "godot": 93, "vimpag": [93, 119, 126], "includeo": 93, "equival": 93, "kptdev": 93, "kpt": 93, "ktr0731": 93, "evan": 93, "usr": [94, 98, 99, 102, 110], "custom": [94, 104, 108, 117, 119, 122, 124], "disabl": [94, 99, 104, 108, 117, 119, 122, 123, 124], "aka": [95, 107], "rust": 95, "notepad": 96, "notepadplusplu": 96, "linux_id": [97, 127], "clean": [97, 127, 129], "nobest": [97, 127], "enhanc": [97, 127, 129], "verbos": [97, 127, 129], "valid": [97, 127, 129], "manual": [97, 98, 118, 123, 124, 127, 129], "construct": [97, 127, 129], "ce": [97, 99, 127], "dockerc": [97, 127], "ore": [97, 127, 129], "major_centos_vers": 97, "epel": [97, 127], "fedoraproject": [97, 127], "pub": [97, 111, 127], "noarch": [97, 127], "surround": 99, "appropri": 99, "backup": [99, 119], "escape_regex_charact": 99, "try_prevent_shell_expans": 99, "regex": 99, "escap": 99, "charact": 99, "prevent": [99, 119], "mark": 99, "prepend": 99, "expans": 99, "awk": 99, "quot": 99, "entri": [99, 119], "red": 99, "mar": 99, "n10": 99, "bodi": 99, "alia": 99, "zshrc": 99, "eval": 99, "thefuck": 99, "alias": 99, "force_backup": 99, "force_backup_dir": 99, "dir_that_we_want_remov": 99, "myweb": [99, 119], "netboot": 99, "tftp": 99, "nf": 99, "sha256sum": 99, "md5sum": 99, "insecur": 99, "proxi": [98, 99], "even": [99, 121], "checksum": 99, "verif": 99, "yourproxi": 99, "create_remote_dir": 99, "755": 99, "umask": 99, "600": [99, 119], "clear": 99, "librari": 99, "visibl": 99, "hidden": 99, "veri": 99, "uchg": 99, "schg": 99, "add_deploy_dir": [99, 119], "create_local_dir": 99, "suitabl": 99, "whocar": 99, "sed": 99, "ensure_newlin": 99, "entir": [99, 133], "interpol": [99, 119], "swap": 99, "special": [99, 119], "iso": 99, "taken": 99, "seper": [], "newlin": 99, "mainten": 99, "maintenance_lin": 99, "down": [73, 99, 117], "FOR": 99, "motd": 99, "Then": 99, "ro": 99, "no_wdelai": 99, "insecure_lock": 99, "no_root_squash": 99, "no_subtree_check": 99, "python3": 99, "sudoer": 99, "nopasswd": 99, "doubl": 99, "quotaus": 99, "addus": 99, "conf": [99, 119], "symbol": 99, "recreat": 99, "issue2": 99, "issu": [99, 132], "assume_exist": 99, "dai": [98, 99, 119], "stringio": 99, "verboten": 99, "forbidden": 99, "binari": 99, "ax": [], "automat": [99, 117, 124], "stricthostkeycheck": 99, "dir_mod": 99, "exclud": 99, "exclude_dir": 99, "pyc": 99, "node_modul": 99, "interpret": [99, 110], "tempdir": 99, "fnmatch": 99, "behind": 99, "scene": 99, "treat": 99, "howev": 99, "deep": 99, "__pycache__": 99, "convent": 99, "suffix": 99, "j2": [99, 119, 133], "somefil": 99, "foo_vari": 99, "foo": [99, 118], "foo_dict": 99, "str1": 99, "str2": 99, "foo_list": 99, "dict_cont": 99, "list_cont": 99, "endfor": 99, "yml": 99, "rubi": 101, "rubygem": 101, "rspec": 101, "bare": 102, "chown": 102, "multi_valu": 102, "anon": 102, "mous": 102, "branch": 102, "rebas": 102, "ssh_keyscan": [102, 121], "update_submodul": 102, "recursive_submodul": 102, "submodul": 102, "detach": 102, "new_branch": 102, "commitish": 102, "from_remote_branch": 102, "assume_repo_exist": 102, "tree": 102, "head": 102, "identifi": [98, 102, 105, 119], "unclean": 102, "hotfix": 102, "4e091aa0": 102, "origin": 102, "not_protocol": 103, "not_sourc": 103, "destin": 103, "not_destin": 103, "in_interfac": 103, "not_in_interfac": 103, "out_interfac": 103, "not_out_interfac": 103, "to_destin": 103, "to_sourc": 103, "to_port": 103, "log_prefix": 103, "destination_port": 103, "source_port": 103, "incom": 103, "outgo": 103, "rout": [98, 103], "snat": 103, "redirect": 103, "physdev": 103, "traffic": 103, "22": [103, 121], "nat": 103, "53": 103, "8080": 103, "launchctl": 104, "16": 105, "absent": [105, 113], "ubuntu19": 105, "19": 105, "four": [106, 113], "charset": 106, "user_hostnam": 106, "user_privileg": 106, "mysql_": 106, "attempt": [113, 119], "mysqldump": 106, "pyinfra_stuff_copi": [106, 113], "flush": 106, "with_grant_opt": 106, "require_ciph": 106, "require_issu": 106, "require_subject": 106, "max_queries_per_hour": 106, "max_updates_per_hour": 106, "max_connections_per_hour": 106, "cannot": 118, "detect": 119, "somepassword": 113, "resourc": [120, 133], "50": [], "certif": [], "x509": [], "se": [], "st": [], "stockholm": [], "edh": [], "rsa": [], "de": [], "cbc3": [], "sha": [], "node": 107, "j": 107, "sy": 109, "plugin": 109, "fugit": 109, "virtualenv_kwarg": 110, "site_packag": 110, "always_copi": 110, "symlink": [110, 117], "standard": 110, "pkg_": 111, "variant": 111, "elsewher": 111, "pkg_path": 111, "autogener": 111, "ftp": 111, "offici": [111, 131, 132], "helpfulli": 111, "addon": 111, "tmux": 112, "psql": 113, "owner": 113, "lc_collat": 113, "lc_ctype": 113, "tablespac": 113, "connection_limit": 113, "psql_": 113, "pg_dump": 113, "superus": 113, "inherit": 113, "replic": 113, "success_exit_cod": 115, "my_callback": 116, "callback": [116, 133], "notimplementederror": 116, "bool_nam": 118, "persist": [118, 119], "apach": 118, "ldap": 118, "httpd_can_network_connect": 118, "se_typ": 118, "express": 118, "bar": 118, "serv": 118, "httpd_sys_content_t": 118, "restorecon": 118, "port_num": 118, "2222": 118, "http_port_t": 118, "care": 119, "cron_nam": 119, "whose": 119, "cronjob": 119, "futur": [2, 119], "overwrit": 119, "week": 119, "nicknam": 119, "uniqu": 119, "weekli": 119, "tar": 119, "cf": 119, "etc_bup": 119, "backup_etc": 119, "groupid": 119, "wheel": 119, "luser": 119, "hostnamectl": 119, "older": [98, 119], "hostname_fil": 119, "perman": 119, "matter": 119, "auto": [90, 119], "mynam": 119, "server1": 119, "en_gb": 119, "unload": 119, "silli": 119, "floppi": 119, "fs_type": 119, "remount": 119, "fstab": 119, "presenc": 119, "relev": 119, "reconnect": 119, "interv": 119, "300": 119, "total": 119, "60": 119, "some_var": 119, "hello2": 119, "blah": 119, "wildcard": 119, "nproc": 119, "1024": 119, "persist_fil": 119, "max": 119, "100000": 119, "authorized_kei": 119, "public_kei": 119, "delete_kei": 119, "ensure_hom": 119, "create_hom": 119, "primari": 119, "secondari": 119, "skeleton": 119, "account": 119, "userid": 119, "geco": 119, "duplic": 119, "newli": 119, "kevin": 119, "bob": 119, "authorized_key_directori": 119, "authorized_key_filenam": 119, "ed25519": 119, "netstat": 119, "80": [98, 119, 123], "snapcraft": 120, "classic": 120, "confin": 120, "tradit": 120, "correspond": 120, "vlc": [55, 100, 120], "neovim": 120, "nvim": 120, "scp": 121, "local_filenam": 121, "rescan": 121, "use_remote_sudo": 121, "systemctl": 122, "session": 122, "dnsmasq": 122, "logrot": 122, "rcx": 123, "y": [123, 126], "start_prior": 123, "stop_prior": 123, "start_level": 123, "stop_level": 123, "prioriti": 123, "d_enabl": 123, "finer": 123, "rsyslog": 123, "sysv": 123, "mess": 123, "certain": [123, 133], "rhel": 123, "chkconfig": 123, "granular": 123, "job": 124, "fiddl": 124, "vztctl": 125, "u": 126, "pager": 126, "major_vers": 127, "extra_global_install_arg": 129, "extra_global_uninstall_arg": 129, "field": 129, "opensuse_tumblewe": 129, "task_linux_amd64": 129, "less": 130, "2024": 130, "benchmark": 130, "fabric": 130, "act": 130, "closer": 130, "opentyp": 131, "font": 131, "complement": 131, "san": 131, "famili": 131, "afdko": 131, "makeotf": 131, "suggest": 131, "maintain": 131, "frank": 131, "grie\u00dfhamm": 131, "mailto": 131, "opensourcefont": 131, "adob": 131, "subject": 131, "consider": 131, "background": 131, "readm": 131, "chat": 132, "matrix": 132, "room": 132, "stack": 132, "overflow": 132, "tag": [98, 132], "scan": 132, "referenc": 132, "anyon": 132, "els": 132, "submit": 132, "fantast": 132, "tell": 133, "cover": 133, "retriev": 133, "At": 133, "flow": 133, "plane": 133, "retreiv": [], "nano": 133, "db_host": 133, "db_hostnam": 133, "yaml": 133, "myapp": 133, "meta": 133, "create_us": 133, "awai": 133, "runtim": 133, "got": 133, "scenario": 133, "install_someth": 133, "overridden": 133, "great": 133, "pend": 2, "_inner": 3, "all_global_argu": 5, "_raise_if_not_complet": 16, "will_chang": 16, "nonetyp": 24, "enforc": 35, "mypi": 35, "pyright": 35, "though": 35, "handi": 35, "dockervolum": [44, 98], "runit": [44, 90], "runitmanag": [44, 117], "runitstatu": [44, 117], "volum": [44, 53, 90], "svdir": [73, 117], "agetti": 73, "tty1": 73, "dhcpcd": 73, "wpa_supplic": 73, "prune": 90, "wait_runsv": 90, "env_var": 98, "pull_alwai": 98, "expos": 98, "varibl": 98, "inject": 98, "contan": 98, "nginx_data": 98, "driver": 98, "gatewai": 98, "ip_rang": 98, "ipam_driv": 98, "subnet": 98, "scope": 98, "ipam_opt": 98, "label": 98, "ingress": 98, "network_nam": 98, "alloc": [98, 128], "cidr": 98, "segment": 98, "ipam": 98, "swarm": 98, "mesh": 98, "unus": 98, "dangl": 98, "ones": 98, "anonym": 98, "24h": 98, "90": 98, "2160h": 98, "storag": 98, "sourcedir": 117, "sv": 117, "effect": 117, "although": 117, "still": 117, "runsv": 117, "ON": 118, "NOT": 92, "wiki": 92, "debianrepositori": 92, "usethirdparti": 92, "jinja_env_kwarg": [19, 99], "flatpak": [44, 90], "flatpakbasefact": 44, "flatpakpackag": [44, 100], "zf": [44, 90], "dataset": [44, 90], "snapshot": [44, 90], "signal": 55, "ref": 55, "x86_64": 55, "gnome": 55, "platform": 55, "kde": 55, "libreoffic": 55, "videolan": [55, 100], "jinja": 99, "render": 99, "kodi": 100, "tv": 100, "destroi": 128, "dataset_nam": 128, "spars": 128, "volume_s": 128, "parent": 128, "child": 128, "extra_prop": 128, "prop": 128, "merg": 128, "conveni": 128, "tank": 128, "srv": 128, "mountpoint": 128, "compress": 128, "lz4": 128, "sun": 128, "auto_snapshot": 128, "db_srv_04": 128, "32g": 128, "old_vers": 128, "fs_name": 128, "snapshot_nam": 128, "weekly_backup": 128, "volume_nam": 128, "create_otherus": 133, "otherus": 133, "lamba": 133, "lambda": 133}, "objects": {"pyinfra.api": [[5, 0, 0, "-", "arguments"], [6, 0, 0, "-", "arguments_typed"], [7, 0, 0, "-", "command"], [8, 0, 0, "-", "config"], [9, 0, 0, "-", "connect"], [10, 0, 0, "-", "connectors"], [11, 0, 0, "-", "deploy"], [12, 0, 0, "-", "exceptions"], [13, 0, 0, "-", "facts"], [14, 0, 0, "-", "host"], [15, 0, 0, "-", "inventory"], [16, 0, 0, "-", "operation"], [17, 0, 0, "-", "operations"], [18, 0, 0, "-", "state"], [19, 0, 0, "-", "util"]], "pyinfra.api.arguments": [[5, 1, 1, "", "AllArguments"], [5, 1, 1, "", "ArgumentMeta"], [5, 1, 1, "", "ConnectorArguments"], [5, 1, 1, "", "ExecutionArguments"], [5, 1, 1, "", "MetaArguments"], [5, 3, 1, "", "all_global_arguments"], [5, 3, 1, "", "generate_env"], [5, 3, 1, "", "pop_global_arguments"]], "pyinfra.api.arguments.AllArguments": [[5, 2, 1, "", "name"]], "pyinfra.api.arguments.ArgumentMeta": [[5, 2, 1, "", "default"], [5, 2, 1, "", "description"], [5, 2, 1, "", "handler"]], "pyinfra.api.arguments.MetaArguments": [[5, 2, 1, "", "name"]], "pyinfra.api.arguments_typed": [[6, 1, 1, "", "PyinfraOperation"]], "pyinfra.api.command": [[7, 1, 1, "", "FileDownloadCommand"], [7, 1, 1, "", "FileUploadCommand"], [7, 1, 1, "", "FunctionCommand"], [7, 1, 1, "", "MaskString"], [7, 1, 1, "", "PyinfraCommand"], [7, 1, 1, "", "QuoteString"], [7, 1, 1, "", "RsyncCommand"], [7, 1, 1, "", "StringCommand"], [7, 3, 1, "", "make_formatted_string_command"]], "pyinfra.api.command.FileDownloadCommand": [[7, 4, 1, "", "execute"]], "pyinfra.api.command.FileUploadCommand": [[7, 4, 1, "", "execute"]], "pyinfra.api.command.FunctionCommand": [[7, 4, 1, "", "execute"]], "pyinfra.api.command.PyinfraCommand": [[7, 2, 1, "", "connector_arguments"], [7, 4, 1, "", "execute"]], "pyinfra.api.command.QuoteString": [[7, 2, 1, "", "obj"]], "pyinfra.api.command.RsyncCommand": [[7, 4, 1, "", "execute"]], "pyinfra.api.command.StringCommand": [[7, 4, 1, "", "execute"], [7, 4, 1, "", "get_masked_value"], [7, 4, 1, "", "get_raw_value"]], "pyinfra.api.config": [[8, 1, 1, "", "Config"], [8, 1, 1, "", "ConfigDefaults"], [8, 3, 1, "", "check_pyinfra_version"], [8, 3, 1, "", "check_require_packages"]], "pyinfra.api.config.Config": [[8, 4, 1, "", "copy"], [8, 4, 1, "", "get_current_state"], [8, 4, 1, "", "lock_current_state"], [8, 4, 1, "", "reset_locked_state"], [8, 4, 1, "", "set_current_state"]], "pyinfra.api.config.ConfigDefaults": [[8, 2, 1, "", "CONNECT_TIMEOUT"], [8, 2, 1, "", "DEFAULT_TEMP_DIR"], [8, 2, 1, "", "DOAS"], [8, 2, 1, "", "DOAS_USER"], [8, 2, 1, "", "FAIL_PERCENT"], [8, 2, 1, "", "IGNORE_ERRORS"], [8, 2, 1, "", "PARALLEL"], [8, 2, 1, "", "PRESERVE_SUDO_ENV"], [8, 2, 1, "", "PRESERVE_SU_ENV"], [8, 2, 1, "", "REQUIRE_PACKAGES"], [8, 2, 1, "", "REQUIRE_PYINFRA_VERSION"], [8, 2, 1, "", "SHELL"], [8, 2, 1, "", "SUDO"], [8, 2, 1, "", "SUDO_PASSWORD"], [8, 2, 1, "", "SUDO_USER"], [8, 2, 1, "", "SU_SHELL"], [8, 2, 1, "", "SU_USER"], [8, 2, 1, "", "TEMP_DIR"], [8, 2, 1, "", "USE_SUDO_LOGIN"], [8, 2, 1, "", "USE_SU_LOGIN"]], "pyinfra.api.connect": [[9, 3, 1, "", "connect_all"], [9, 3, 1, "", "disconnect_all"]], "pyinfra.api.connectors": [[10, 3, 1, "", "get_all_connectors"], [10, 3, 1, "", "get_execution_connector"], [10, 3, 1, "", "get_execution_connectors"]], "pyinfra.api.deploy": [[11, 3, 1, "", "add_deploy"], [11, 3, 1, "", "deploy"]], "pyinfra.api.exceptions": [[12, 5, 1, "", "ArgumentTypeError"], [12, 5, 1, "", "ConnectError"], [12, 5, 1, "", "ConnectorDataTypeError"], [12, 5, 1, "", "DeployError"], [12, 5, 1, "", "FactError"], [12, 5, 1, "", "FactTypeError"], [12, 5, 1, "", "FactValueError"], [12, 5, 1, "", "InventoryError"], [12, 5, 1, "", "NoConnectorError"], [12, 5, 1, "", "NoGroupError"], [12, 5, 1, "", "NoHostError"], [12, 5, 1, "", "OperationError"], [12, 5, 1, "", "OperationTypeError"], [12, 5, 1, "", "OperationValueError"], [12, 5, 1, "", "PyinfraError"]], "pyinfra.api.facts": [[13, 1, 1, "", "FactBase"], [13, 1, 1, "", "ShortFactBase"], [13, 3, 1, "", "get_fact"], [13, 3, 1, "", "get_facts"], [13, 3, 1, "", "get_host_fact"], [13, 3, 1, "", "get_short_facts"]], "pyinfra.api.facts.FactBase": [[13, 2, 1, "", "abstract"], [13, 2, 1, "", "command"], [13, 4, 1, "", "default"], [13, 2, 1, "", "name"], [13, 4, 1, "", "process"], [13, 4, 1, "", "process_pipeline"], [13, 4, 1, "", "requires_command"], [13, 2, 1, "", "shell_executable"]], "pyinfra.api.facts.ShortFactBase": [[13, 2, 1, "", "fact"], [13, 2, 1, "", "name"], [13, 4, 1, "", "process_data"]], "pyinfra.api.host": [[14, 1, 1, "", "Host"], [14, 1, 1, "", "HostData"], [14, 3, 1, "", "extract_callable_datas"]], "pyinfra.api.host.Host": [[14, 2, 1, "", "T"], [14, 4, 1, "", "arguments"], [14, 4, 1, "", "check_can_rsync"], [14, 4, 1, "", "connect"], [14, 2, 1, "", "connected"], [14, 2, 1, "", "connector"], [14, 2, 1, "", "connector_cls"], [14, 2, 1, "", "connector_data"], [14, 2, 1, "", "current_deploy_data"], [14, 2, 1, "", "current_deploy_kwargs"], [14, 2, 1, "", "current_deploy_name"], [14, 2, 1, "", "current_op_deploy_data"], [14, 2, 1, "", "current_op_global_arguments"], [14, 2, 1, "", "current_op_hash"], [14, 4, 1, "", "deploy"], [14, 4, 1, "", "disconnect"], [14, 2, 1, "", "executing_op_hash"], [14, 4, 1, "", "get_deploy_data"], [14, 4, 1, "", "get_fact"], [14, 4, 1, "", "get_file"], [14, 4, 1, "", "get_temp_filename"], [14, 6, 1, "", "group_data"], [14, 6, 1, "", "host_data"], [14, 2, 1, "", "in_callback_op"], [14, 2, 1, "", "in_deploy"], [14, 2, 1, "", "in_op"], [14, 4, 1, "", "init"], [14, 4, 1, "", "log"], [14, 4, 1, "", "log_styled"], [14, 4, 1, "", "loop"], [14, 2, 1, "", "loop_position"], [14, 2, 1, "", "nested_executing_op_hash"], [14, 4, 1, "", "noop"], [14, 6, 1, "", "print_prefix"], [14, 4, 1, "", "put_file"], [14, 4, 1, "", "rsync"], [14, 4, 1, "", "run_shell_command"], [14, 2, 1, "", "state"], [14, 4, 1, "", "style_print_prefix"], [14, 4, 1, "", "when"]], "pyinfra.api.host.HostData": [[14, 4, 1, "", "dict"], [14, 4, 1, "", "get"], [14, 2, 1, "", "override_datas"]], "pyinfra.api.inventory": [[15, 1, 1, "", "Inventory"], [15, 3, 1, "", "extract_name_data"]], "pyinfra.api.inventory.Inventory": [[15, 4, 1, "", "empty"], [15, 4, 1, "", "get_data"], [15, 4, 1, "", "get_group"], [15, 4, 1, "", "get_group_data"], [15, 4, 1, "", "get_groups_data"], [15, 4, 1, "", "get_host"], [15, 4, 1, "", "get_host_data"], [15, 4, 1, "", "get_override_data"], [15, 4, 1, "", "iter_activated_hosts"], [15, 4, 1, "", "iter_active_hosts"], [15, 4, 1, "", "len_activated_hosts"], [15, 4, 1, "", "len_active_hosts"], [15, 4, 1, "", "make_hosts_and_groups"], [15, 2, 1, "", "state"]], "pyinfra.api.operation": [[16, 1, 1, "", "OperationMeta"], [16, 3, 1, "", "add_op"], [16, 3, 1, "", "attach_args"], [16, 3, 1, "", "ensure_shared_op_meta"], [16, 3, 1, "", "execute_immediately"], [16, 3, 1, "", "generate_operation_name"], [16, 3, 1, "", "get_operation_name_from_func"], [16, 3, 1, "", "operation"], [16, 3, 1, "", "solve_operation_consistency"]], "pyinfra.api.operation.OperationMeta": [[16, 6, 1, "", "changed"], [16, 4, 1, "", "did_change"], [16, 4, 1, "", "did_error"], [16, 4, 1, "", "did_not_change"], [16, 4, 1, "", "did_succeed"], [16, 6, 1, "", "executed"], [16, 4, 1, "", "is_complete"], [16, 4, 1, "", "set_complete"], [16, 6, 1, "", "stderr"], [16, 6, 1, "", "stderr_lines"], [16, 6, 1, "", "stdout"], [16, 6, 1, "", "stdout_lines"], [16, 6, 1, "", "will_change"]], "pyinfra.api.operations": [[17, 3, 1, "", "run_host_op"], [17, 3, 1, "", "run_ops"]], "pyinfra.api.state": [[18, 1, 1, "", "BaseStateCallback"], [18, 1, 1, "", "State"], [18, 1, 1, "", "StateHostMeta"], [18, 1, 1, "", "StateHostResults"], [18, 1, 1, "", "StateOperationHostData"], [18, 1, 1, "", "StateOperationMeta"], [18, 1, 1, "", "StateStage"]], "pyinfra.api.state.BaseStateCallback": [[18, 4, 1, "", "host_before_connect"], [18, 4, 1, "", "host_connect"], [18, 4, 1, "", "host_connect_error"], [18, 4, 1, "", "host_disconnect"], [18, 4, 1, "", "operation_end"], [18, 4, 1, "", "operation_host_error"], [18, 4, 1, "", "operation_host_start"], [18, 4, 1, "", "operation_host_success"], [18, 4, 1, "", "operation_start"]], "pyinfra.api.state.State": [[18, 4, 1, "", "activate_host"], [18, 4, 1, "", "add_callback_handler"], [18, 2, 1, "", "check_for_changes"], [18, 2, 1, "", "config"], [18, 2, 1, "", "current_deploy_filename"], [18, 2, 1, "", "current_exec_filename"], [18, 2, 1, "", "current_op_file_number"], [18, 2, 1, "", "current_stage"], [18, 2, 1, "", "cwd"], [18, 4, 1, "", "fail_hosts"], [18, 4, 1, "", "get_meta_for_host"], [18, 4, 1, "", "get_op_data_for_host"], [18, 4, 1, "", "get_op_meta"], [18, 4, 1, "", "get_op_order"], [18, 4, 1, "", "get_results_for_host"], [18, 4, 1, "", "get_warning_counter"], [18, 4, 1, "", "increment_warning_counter"], [18, 4, 1, "", "init"], [18, 2, 1, "", "initialised"], [18, 2, 1, "", "inventory"], [18, 2, 1, "", "is_executing"], [18, 4, 1, "", "is_host_in_limit"], [18, 2, 1, "", "pool"], [18, 2, 1, "", "print_fact_info"], [18, 2, 1, "", "print_fact_input"], [18, 2, 1, "", "print_fact_output"], [18, 2, 1, "", "print_input"], [18, 2, 1, "", "print_noop_info"], [18, 2, 1, "", "print_output"], [18, 4, 1, "", "set_op_data_for_host"], [18, 4, 1, "", "set_stage"], [18, 4, 1, "", "should_check_for_changes"], [18, 2, 1, "", "should_raise_failed_hosts"], [18, 2, 1, "", "stage_warnings"], [18, 4, 1, "", "trigger_callbacks"]], "pyinfra.api.state.StateHostMeta": [[18, 2, 1, "", "op_hashes"], [18, 2, 1, "", "ops"], [18, 2, 1, "", "ops_change"], [18, 2, 1, "", "ops_no_change"]], "pyinfra.api.state.StateHostResults": [[18, 2, 1, "", "error_ops"], [18, 2, 1, "", "ignored_error_ops"], [18, 2, 1, "", "ops"], [18, 2, 1, "", "partial_ops"], [18, 2, 1, "", "success_ops"]], "pyinfra.api.state.StateOperationHostData": [[18, 2, 1, "", "command_generator"], [18, 2, 1, "", "global_arguments"], [18, 2, 1, "", "operation_meta"], [18, 2, 1, "", "parent_op_hash"]], "pyinfra.api.state.StateOperationMeta": [[18, 2, 1, "", "args"], [18, 2, 1, "", "global_arguments"], [18, 2, 1, "", "names"], [18, 2, 1, "", "op_order"]], "pyinfra.api.state.StateStage": [[18, 2, 1, "", "Connect"], [18, 2, 1, "", "Disconnect"], [18, 2, 1, "", "Execute"], [18, 2, 1, "", "Prepare"], [18, 2, 1, "", "Setup"]], "pyinfra.api.util": [[19, 3, 1, "", "format_exception"], [19, 3, 1, "", "get_call_location"], [19, 3, 1, "", "get_caller_frameinfo"], [19, 1, 1, "", "get_file_io"], [19, 3, 1, "", "get_file_path"], [19, 3, 1, "", "get_file_sha1"], [19, 3, 1, "", "get_kwargs_str"], [19, 3, 1, "", "get_operation_order_from_stack"], [19, 3, 1, "", "get_path_permissions_mode"], [19, 3, 1, "", "get_template"], [19, 3, 1, "", "log_error_or_warning"], [19, 3, 1, "", "log_host_command_error"], [19, 3, 1, "", "log_operation_start"], [19, 3, 1, "", "make_hash"], [19, 3, 1, "", "memoize"], [19, 3, 1, "", "print_host_combined_output"], [19, 3, 1, "", "raise_if_bad_type"], [19, 3, 1, "", "sha1_hash"], [19, 3, 1, "", "try_int"]], "pyinfra.api.util.get_file_io": [[19, 6, 1, "", "cache_key"], [19, 2, 1, "", "filename_or_io"], [19, 2, 1, "", "mode"]], "pyinfra": [[20, 0, 0, "-", "context"], [21, 0, 0, "-", "local"], [22, 0, 0, "-", "progress"], [23, 0, 0, "-", "version"]], "pyinfra.context": [[20, 1, 1, "", "ContextManager"], [20, 1, 1, "", "ContextObject"], [20, 1, 1, "", "LocalContextObject"], [20, 1, 1, "", "container"], [20, 3, 1, "", "init_base_classes"]], "pyinfra.context.ContextManager": [[20, 4, 1, "", "get"], [20, 4, 1, "", "isset"], [20, 4, 1, "", "reset"], [20, 4, 1, "", "set"], [20, 4, 1, "", "set_base"], [20, 4, 1, "", "use"]], "pyinfra.context.container": [[20, 2, 1, "", "module"]], "pyinfra.local": [[21, 3, 1, "", "include"], [21, 3, 1, "", "shell"]], "pyinfra.progress": [[22, 3, 1, "", "progress_spinner"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:function", "4": "py:method", "5": "py:exception", "6": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "function", "Python function"], "4": ["py", "method", "Python method"], "5": ["py", "exception", "Python exception"], "6": ["py", "property", "Python property"]}, "titleterms": {"write": [0, 3], "connector": [0, 10, 27, 28, 29, 30, 31, 32, 33, 34], "inventori": [0, 15, 25, 41, 89, 133], "execut": [0, 24, 25, 40], "packag": [1, 25, 90, 91, 92, 93, 95, 96, 97, 100, 101, 107, 109, 110, 111, 112, 119, 120, 126, 127, 129], "deploi": [1, 11, 37, 40, 86, 87], "exampl": [1, 3, 25, 32, 37, 133], "global": [1, 24, 89, 133], "argument": [1, 3, 5, 24, 25, 89, 133], "data": [1, 29, 32, 39, 41, 89, 133], "us": [2, 3, 25, 36, 43, 85, 87, 133], "api": [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "fact": [3, 13, 36, 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, 133], "oper": [3, 16, 17, 24, 25, 26, 36, 85, 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, 133], "input": 3, "output": [3, 133], "command": [3, 7, 25, 75, 86, 121], "manag": [3, 25, 117], "file": [3, 54, 85, 89, 99, 133], "import": 3, "get": [3, 85, 86, 99, 131], "swap": 3, "statu": 3, "list": 3, "directori": [3, 54, 85, 99], "ani": 3, "from": [3, 26], "refer": [4, 87], "core": 4, "pyinfra": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 36, 43, 86, 87], "modul": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26], "arguments_typ": 6, "config": [8, 102, 133], "connect": [9, 89], "except": 12, "host": [14, 36, 85, 89, 133], "state": [18, 86], "util": 19, "context": 20, "local": [21, 27, 31, 75, 119], "progress": 22, "version": [23, 26], "privileg": [24, 106], "user": [24, 75, 86, 106, 119], "escal": 24, "shell": [24, 25, 119], "control": [24, 26], "featur": 24, "meta": 24, "callback": 24, "strategi": 24, "cli": 25, "option": 25, "verbos": 25, "limit": [25, 89], "ad": [25, 86], "hoc": [25, 86], "debug": 25, "distribut": 25, "servic": [25, 94, 104, 108, 117, 119, 122, 123, 124], "reboot": [25, 119], "addit": 25, "info": 25, "autocomplet": 25, "compat": 26, "system": [26, 90], "editor": 26, "integr": 26, "pycharm": 26, "remot": 26, "upgrad": [26, 91, 92, 93, 109, 112, 126], "0": 26, "x": 26, "1": 26, "renam": 26, "name": [26, 85], "index": [27, 44, 90], "ssh": [27, 32, 121], "docker": [27, 29, 53, 86, 98], "terraform": [27, 33], "chroot": 28, "usag": [28, 29, 30, 31, 33, 34], "avail": [29, 32], "dockerssh": 30, "vagrant": 34, "contribut": [35, 132], "guid": 35, "branch": 35, "dev": 35, "setup": 35, "test": 35, "unit": 35, "end": 35, "gener": 35, "document": [35, 87], "code": 35, "style": 35, "how": [36, 85, 87], "work": [36, 87], "detect": 36, "chang": [36, 133], "order": 36, "when": 36, "doe": 36, "thi": 36, "matter": 36, "check": [35, 36], "client": 38, "side": 38, "asset": 38, "across": 39, "multipl": [39, 133], "environ": 39, "dynam": [40, 41], "dure": 40, "group": [42, 75, 89, 119, 133], "role": [42, 113, 114], "secret": 43, "apk": [45, 91], "apkpackag": 45, "apt": [46, 92], "aptkei": 46, "aptsourc": 46, "brew": [47, 93], "brewcask": 47, "brewpackag": 47, "brewtap": 47, "brewvers": 47, "bsdinit": [48, 94], "rcdstatu": 48, "cargo": [49, 95], "cargopackag": 49, "choco": [50, 96], "chocopackag": 50, "chocovers": 50, "deb": [51, 92], "debarch": 51, "debpackag": 51, "dnf": [52, 97], "dnfrepositori": 52, "dockercontain": 53, "dockerimag": 53, "dockernetwork": 53, "dockersinglemixin": 53, "dockersysteminfo": 53, "block": [54, 99], "finddirectori": 54, "findfil": 54, "findinfil": 54, "findlink": 54, "flag": [54, 99], "link": [54, 85, 99], "md5file": 54, "sha1fil": 54, "sha256fil": 54, "socket": 54, "gem": [56, 101], "gempackag": 56, "git": [57, 102], "gitbranch": 57, "gitconfig": 57, "gittrackingbranch": 57, "gpg": 58, "gpgkei": 58, "gpgsecretkei": 58, "hardwar": 59, "blockdevic": 59, "cpu": 59, "ipv4address": 59, "ipv4addr": 59, "ipv6address": 59, "ipv6addr": 59, "memori": 59, "networkdevic": 59, "iptabl": [60, 103], "ip6tableschain": 60, "ip6tablesrul": 60, "iptableschain": 60, "iptablesrul": 60, "launchd": [61, 104], "launchdstatu": 61, "lxd": [62, 105], "lxdcontain": 62, "mysql": [63, 106], "mysqldatabas": 63, "mysqlusergr": 63, "mysqlus": 63, "npm": [64, 107], "npmpackag": 64, "openrc": [65, 108], "openrcen": 65, "openrcstatu": 65, "pacman": [66, 109], "pacmanpackag": 66, "pacmanunpackgroup": 66, "pip": [67, 88, 110], "pip3packag": 67, "pippackag": 67, "pkg": [68, 111], "pkgpackag": 68, "pkgin": [69, 112], "pkginpackag": 69, "postgr": [70, 113], "postgresdatabas": 70, "postgresrol": 70, "postgresql": [71, 114], "postgresqldatabas": 71, "postgresqlrol": 71, "rpm": [72, 97, 127, 129], "rpmpackag": 72, "rpmpackageprovid": 72, "selinux": [74, 75, 118], "filecontext": 74, "filecontextmap": 74, "seboolean": 74, "seport": 74, "server": [75, 119], "arch": 75, "crontab": [75, 119], "date": 75, "hasgui": 75, "home": 75, "hostnam": [75, 119], "kernel": 75, "kernelmodul": 75, "kernelvers": 75, "linuxdistribut": 75, "linuxgui": 75, "linuxnam": 75, "lsbreleas": 75, "macosvers": 75, "mount": [75, 119, 125], "o": 75, "osvers": 75, "path": 75, "securitylimit": 75, "sysctl": [75, 119], "tmpdir": 75, "which": 75, "snap": [76, 120], "snapbasefact": 76, "snappackag": 76, "systemd": [77, 122], "systemden": 77, "systemdstatu": 77, "sysvinit": [78, 123], "initdstatu": 78, "upstart": [79, 124], "upstartstatu": 79, "vzctl": [80, 125], "openvzcontain": 80, "xbp": [81, 126], "xbpspackag": 81, "yum": [82, 127], "yumrepositori": 82, "zypper": [84, 129], "zypperrepositori": 84, "frequent": 85, "ask": 85, "question": 85, "do": 85, "i": [85, 132], "current": 85, "sudo": 85, "an": [85, 132], "chmod": 85, "chown": 85, "start": [86, 125], "definit": 86, "note": 86, "creat": [86, 125], "instal": [88, 96, 131], "pipx": [], "window": 88, "runtim": 89, "hierarchi": 89, "extern": 89, "sourc": [89, 131], "basic": 90, "languag": 90, "databas": [90, 106, 113, 114], "updat": [91, 92, 93, 97, 109, 112, 126, 127, 129], "stateless": [91, 92, 93, 96, 97, 98, 99, 106, 109, 112, 113, 114, 115, 116, 117, 119, 121, 122, 125, 126, 127, 129], "dist_upgrad": 92, "kei": [92, 97, 127], "ppa": 92, "repo": [92, 97, 102, 127, 129], "cask_upgrad": 93, "cask": 93, "tap": 93, "download": [99, 121], "line": 99, "put": 99, "replac": 99, "rsync": 99, "sync": 99, "templat": 99, "bare_repo": 102, "worktre": 102, "chain": 103, "rule": 103, "contain": [98, 105], "dump": [106, 113, 114], "load": [106, 113, 114], "sql": [106, 113, 114], "venv": 110, "virtualenv": 110, "puppet": 115, "agent": 115, "python": 116, "call": 116, "raise_except": 116, "boolean": 118, "file_context": 118, "file_context_map": 118, "port": 118, "modprob": 119, "script": 119, "script_templ": 119, "security_limit": 119, "user_authorized_kei": 119, "wait": 119, "keyscan": 121, "upload": 121, "daemon_reload": 122, "enabl": 123, "delet": 125, "restart": 125, "set": 125, "stop": 125, "unmount": 125, "perform": 130, "serif": 131, "pro": 131, "instruct": 131, "involv": 131, "further": 131, "inform": 131, "help": 132, "support": 132, "think": 132, "ve": 132, "got": 132, "bug": 132, "have": 132, "idea": 132, "d": 132, "like": 132, "The": 133, "object": 133, "nest": 133, "includ": 133, "enforc": 133, "requir": 133, "type": 35, "dockervolum": 53, "runit": [73, 117], "runitmanag": 73, "runitstatu": 73, "imag": 98, "network": 98, "prune": 98, "volum": [83, 98, 128], "auto": 117, "wait_runsv": 117, "flatpak": [55, 100], "flatpakbasefact": 55, "flatpakpackag": 55, "zf": [83, 128], "dataset": [83, 128], "filesystem": [83, 128], "pool": 83, "snapshot": [83, 128]}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Writing Connectors": [[0, "writing-connectors"]], "Inventory Connector": [[0, "inventory-connector"]], "Executing Connector": [[0, "executing-connector"]], "Packaging Deploys": [[1, "packaging-deploys"]], "Examples": [[1, "examples"], [32, "examples"], [133, "examples"]], "Global Arguments": [[1, "global-arguments"], [24, "global-arguments"], [133, "global-arguments"]], "Data in Deploys": [[1, "data-in-deploys"]], "Using the API": [[2, "using-the-api"]], "Writing Facts & Operations": [[3, "writing-facts-operations"]], "Operations": [[3, "operations"]], "Input: arguments": [[3, "input-arguments"]], "Output: commands": [[3, "output-commands"]], "Example: managing files": [[3, "example-managing-files"]], "Facts": [[3, "facts"]], "Importing & Using Facts": [[3, "importing-using-facts"]], "Example: getting swap status": [[3, "example-getting-swap-status"]], "Example: getting the list of files in a directory": [[3, "example-getting-the-list-of-files-in-a-directory"]], "Example: getting any output from a command": [[3, "example-getting-any-output-from-a-command"]], "API Reference": [[4, "api-reference"]], "Core API": [[4, null]], "pyinfra.api.arguments module": [[5, "module-pyinfra.api.arguments"]], "pyinfra.api.arguments_typed module": [[6, "module-pyinfra.api.arguments_typed"]], "pyinfra.api.command module": [[7, "module-pyinfra.api.command"]], "pyinfra.api.config module": [[8, "module-pyinfra.api.config"]], "pyinfra.api.connect module": [[9, "module-pyinfra.api.connect"]], "pyinfra.api.connectors module": [[10, "module-pyinfra.api.connectors"]], "pyinfra.api.deploy module": [[11, "module-pyinfra.api.deploy"]], "pyinfra.api.exceptions module": [[12, "module-pyinfra.api.exceptions"]], "pyinfra.api.facts module": [[13, "module-pyinfra.api.facts"]], "pyinfra.api.host module": [[14, "module-pyinfra.api.host"]], "pyinfra.api.inventory module": [[15, "module-pyinfra.api.inventory"]], "pyinfra.api.operation module": [[16, "module-pyinfra.api.operation"]], "pyinfra.api.operations module": [[17, "module-pyinfra.api.operations"]], "pyinfra.api.state module": [[18, "module-pyinfra.api.state"]], "pyinfra.api.util module": [[19, "module-pyinfra.api.util"]], "pyinfra.context module": [[20, "module-pyinfra.context"]], "pyinfra.local module": [[21, "module-pyinfra.local"]], "pyinfra.progress module": [[22, "module-pyinfra.progress"]], "pyinfra.version module": [[23, "module-pyinfra.version"]], "Privilege & user escalation": [[24, "privilege-user-escalation"]], "Shell control & features": [[24, "shell-control-features"]], "Operation meta & callbacks": [[24, "operation-meta-callbacks"]], "Execution strategy": [[24, "execution-strategy"]], "Using the CLI": [[25, "using-the-cli"]], "CLI arguments & options": [[25, "cli-arguments-options"]], "Verbosity": [[25, "verbosity"]], "Inventory": [[25, "inventory"]], "Limit": [[25, "limit"]], "Ad-hoc command execution": [[25, "ad-hoc-command-execution"]], "Example: debugging distributed services using pyinfra": [[25, "example-debugging-distributed-services-using-pyinfra"]], "Executing ad-hoc operations": [[25, "executing-ad-hoc-operations"]], "Example: managing packages with ad-hoc pyinfra commands": [[25, "example-managing-packages-with-ad-hoc-pyinfra-commands"]], "Example: managing services with ad-hoc pyinfra commands": [[25, "example-managing-services-with-ad-hoc-pyinfra-commands"]], "Example: rebooting with ad-hoc pyinfra commands": [[25, "example-rebooting-with-ad-hoc-pyinfra-commands"]], "Additional debug info": [[25, "additional-debug-info"]], "Shell Autocompletion": [[25, "shell-autocompletion"]], "Compatibility": [[26, "compatibility"]], "pyinfra Versions": [[26, "pyinfra-versions"]], "Control Systems": [[26, "control-systems"]], "Editor Integration": [[26, "editor-integration"]], "PyCharm": [[26, "pycharm"]], "Remote Systems": [[26, "remote-systems"]], "Upgrading pyinfra from 0.x -> 1.x": [[26, "upgrading-pyinfra-from-0-x-1-x"]], "Rename the modules module": [[26, "rename-the-modules-module"]], "Naming operations": [[26, "naming-operations"]], "Connectors Index": [[27, "connectors-index"]], "@ssh Connector": [[27, null], [32, "ssh-connector"]], "@docker Connector": [[27, null], [29, "docker-connector"]], "@terraform Connector": [[27, null], [33, "terraform-connector"]], "@local Connector": [[27, null], [31, "local-connector"]], "@chroot Connector": [[28, "chroot-connector"]], "Usage": [[28, "usage"], [29, "usage"], [30, "usage"], [31, "usage"], [33, "usage"], [34, "usage"]], "Available Data": [[29, "available-data"], [32, "available-data"]], "@dockerssh Connector": [[30, "dockerssh-connector"]], "@vagrant Connector": [[34, "vagrant-connector"]], "Contributing": [[35, "contributing"]], "Guides": [[35, "guides"]], "Branches": [[35, "branches"]], "Dev Setup": [[35, "dev-setup"]], "Code Style & Type Checking": [[35, "code-style-type-checking"]], "Tests": [[35, "tests"]], "Unit Tests": [[35, "unit-tests"]], "End to End Tests": [[35, "end-to-end-tests"]], "Generate Documentation": [[35, "generate-documentation"]], "How pyinfra Works": [[36, "how-pyinfra-works"], [87, "how-pyinfra-works"]], "How pyinfra Detects Changes & Orders Operations": [[36, "how-pyinfra-detects-changes-orders-operations"]], "When does this matter?": [[36, "when-does-this-matter"]], "Using Host Facts": [[36, "using-host-facts"]], "Checking Operation Changes": [[36, "checking-operation-changes"]], "Example Deploys": [[37, "example-deploys"]], "Client Side Assets": [[38, "client-side-assets"]], "Data Across Multiple Environments": [[39, "data-across-multiple-environments"]], "Dynamic Execution during Deploy": [[40, "dynamic-execution-during-deploy"]], "Dynamic Inventories & Data": [[41, "dynamic-inventories-data"]], "Groups & Roles": [[42, "groups-roles"]], "Using Secrets in pyinfra": [[43, "using-secrets-in-pyinfra"]], "Facts Index": [[44, "facts-index"]], "Apk Facts": [[45, "apk-facts"]], "apk.ApkPackages": [[45, "apk-apkpackages"]], "Apt Facts": [[46, "apt-facts"]], "apt.AptKeys": [[46, "apt-aptkeys"]], "apt.AptSources": [[46, "apt-aptsources"]], "Brew Facts": [[47, "brew-facts"]], "brew.BrewCasks": [[47, "brew-brewcasks"]], "brew.BrewPackages": [[47, "brew-brewpackages"]], "brew.BrewTaps": [[47, "brew-brewtaps"]], "brew.BrewVersion": [[47, "brew-brewversion"]], "Bsdinit Facts": [[48, "bsdinit-facts"]], "bsdinit.RcdStatus": [[48, "bsdinit-rcdstatus"]], "Cargo Facts": [[49, "cargo-facts"]], "cargo.CargoPackages": [[49, "cargo-cargopackages"]], "Choco Facts": [[50, "choco-facts"]], "choco.ChocoPackages": [[50, "choco-chocopackages"]], "choco.ChocoVersion": [[50, "choco-chocoversion"]], "Deb Facts": [[51, "deb-facts"]], "deb.DebArch": [[51, "deb-debarch"]], "deb.DebPackage": [[51, "deb-debpackage"]], "deb.DebPackages": [[51, "deb-debpackages"]], "Dnf Facts": [[52, "dnf-facts"]], "dnf.DnfRepositories": [[52, "dnf-dnfrepositories"]], "Docker Facts": [[53, "docker-facts"]], "docker.DockerContainer": [[53, "docker-dockercontainer"]], "docker.DockerContainers": [[53, "docker-dockercontainers"]], "docker.DockerImage": [[53, "docker-dockerimage"]], "docker.DockerImages": [[53, "docker-dockerimages"]], "docker.DockerNetwork": [[53, "docker-dockernetwork"]], "docker.DockerNetworks": [[53, "docker-dockernetworks"]], "docker.DockerSingleMixin": [[53, "docker-dockersinglemixin"]], "docker.DockerSystemInfo": [[53, "docker-dockersysteminfo"]], "docker.DockerVolume": [[53, "docker-dockervolume"]], "docker.DockerVolumes": [[53, "docker-dockervolumes"]], "Files Facts": [[54, "files-facts"]], "files.Block": [[54, "files-block"]], "files.Directory": [[54, "files-directory"]], "files.File": [[54, "files-file"]], "files.FindDirectories": [[54, "files-finddirectories"]], "files.FindFiles": [[54, "files-findfiles"]], "files.FindInFile": [[54, "files-findinfile"]], "files.FindLinks": [[54, "files-findlinks"]], "files.Flags": [[54, "files-flags"]], "files.Link": [[54, "files-link"]], "files.Md5File": [[54, "files-md5file"]], "files.Sha1File": [[54, "files-sha1file"]], "files.Sha256File": [[54, "files-sha256file"]], "files.Socket": [[54, "files-socket"]], "Flatpak Facts": [[55, "flatpak-facts"]], "flatpak.FlatpakBaseFact": [[55, "flatpak-flatpakbasefact"]], "flatpak.FlatpakPackage": [[55, "flatpak-flatpakpackage"]], "flatpak.FlatpakPackages": [[55, "flatpak-flatpakpackages"]], "Gem Facts": [[56, "gem-facts"]], "gem.GemPackages": [[56, "gem-gempackages"]], "Git Facts": [[57, "git-facts"]], "git.GitBranch": [[57, "git-gitbranch"]], "git.GitConfig": [[57, "git-gitconfig"]], "git.GitTrackingBranch": [[57, "git-gittrackingbranch"]], "Gpg Facts": [[58, "gpg-facts"]], "gpg.GpgKey": [[58, "gpg-gpgkey"]], "gpg.GpgKeys": [[58, "gpg-gpgkeys"]], "gpg.GpgSecretKeys": [[58, "gpg-gpgsecretkeys"]], "Hardware Facts": [[59, "hardware-facts"]], "hardware.BlockDevices": [[59, "hardware-blockdevices"]], "hardware.Cpus": [[59, "hardware-cpus"]], "hardware.Ipv4Addresses": [[59, "hardware-ipv4addresses"]], "hardware.Ipv4Addrs": [[59, "hardware-ipv4addrs"]], "hardware.Ipv6Addresses": [[59, "hardware-ipv6addresses"]], "hardware.Ipv6Addrs": [[59, "hardware-ipv6addrs"]], "hardware.Memory": [[59, "hardware-memory"]], "hardware.NetworkDevices": [[59, "hardware-networkdevices"]], "Iptables Facts": [[60, "iptables-facts"]], "iptables.Ip6tablesChains": [[60, "iptables-ip6tableschains"]], "iptables.Ip6tablesRules": [[60, "iptables-ip6tablesrules"]], "iptables.IptablesChains": [[60, "iptables-iptableschains"]], "iptables.IptablesRules": [[60, "iptables-iptablesrules"]], "Launchd Facts": [[61, "launchd-facts"]], "launchd.LaunchdStatus": [[61, "launchd-launchdstatus"]], "Lxd Facts": [[62, "lxd-facts"]], "lxd.LxdContainers": [[62, "lxd-lxdcontainers"]], "Mysql Facts": [[63, "mysql-facts"]], "mysql.MysqlDatabases": [[63, "mysql-mysqldatabases"]], "mysql.MysqlUserGrants": [[63, "mysql-mysqlusergrants"]], "mysql.MysqlUsers": [[63, "mysql-mysqlusers"]], "Npm Facts": [[64, "npm-facts"]], "npm.NpmPackages": [[64, "npm-npmpackages"]], "Openrc Facts": [[65, "openrc-facts"]], "openrc.OpenrcEnabled": [[65, "openrc-openrcenabled"]], "openrc.OpenrcStatus": [[65, "openrc-openrcstatus"]], "Pacman Facts": [[66, "pacman-facts"]], "pacman.PacmanPackages": [[66, "pacman-pacmanpackages"]], "pacman.PacmanUnpackGroup": [[66, "pacman-pacmanunpackgroup"]], "Pip Facts": [[67, "pip-facts"]], "pip.Pip3Packages": [[67, "pip-pip3packages"]], "pip.PipPackages": [[67, "pip-pippackages"]], "Pkg Facts": [[68, "pkg-facts"]], "pkg.PkgPackages": [[68, "pkg-pkgpackages"]], "Pkgin Facts": [[69, "pkgin-facts"]], "pkgin.PkginPackages": [[69, "pkgin-pkginpackages"]], "Postgres Facts": [[70, "postgres-facts"]], "postgres.PostgresDatabases": [[70, "postgres-postgresdatabases"]], "postgres.PostgresRoles": [[70, "postgres-postgresroles"]], "Postgresql Facts": [[71, "postgresql-facts"]], "postgresql.PostgresqlDatabases": [[71, "postgresql-postgresqldatabases"]], "postgresql.PostgresqlRoles": [[71, "postgresql-postgresqlroles"]], "Rpm Facts": [[72, "rpm-facts"]], "rpm.RpmPackage": [[72, "rpm-rpmpackage"]], "rpm.RpmPackageProvides": [[72, "rpm-rpmpackageprovides"]], "rpm.RpmPackages": [[72, "rpm-rpmpackages"]], "Runit Facts": [[73, "runit-facts"]], "runit.RunitManaged": [[73, "runit-runitmanaged"]], "runit.RunitStatus": [[73, "runit-runitstatus"]], "Selinux Facts": [[74, "selinux-facts"]], "selinux.FileContext": [[74, "selinux-filecontext"]], "selinux.FileContextMapping": [[74, "selinux-filecontextmapping"]], "selinux.SEBoolean": [[74, "selinux-seboolean"]], "selinux.SEPort": [[74, "selinux-seport"]], "selinux.SEPorts": [[74, "selinux-seports"]], "Server Facts": [[75, "server-facts"]], "server.Arch": [[75, "server-arch"]], "server.Command": [[75, "server-command"]], "server.Crontab": [[75, "server-crontab"]], "server.Date": [[75, "server-date"]], "server.Groups": [[75, "server-groups"]], "server.HasGui": [[75, "server-hasgui"]], "server.Home": [[75, "server-home"]], "server.Hostname": [[75, "server-hostname"]], "server.Kernel": [[75, "server-kernel"]], "server.KernelModules": [[75, "server-kernelmodules"]], "server.KernelVersion": [[75, "server-kernelversion"]], "server.LinuxDistribution": [[75, "server-linuxdistribution"]], "server.LinuxGui": [[75, "server-linuxgui"]], "server.LinuxName": [[75, "server-linuxname"]], "server.Locales": [[75, "server-locales"]], "server.LsbRelease": [[75, "server-lsbrelease"]], "server.MacosVersion": [[75, "server-macosversion"]], "server.Mounts": [[75, "server-mounts"]], "server.Os": [[75, "server-os"]], "server.OsVersion": [[75, "server-osversion"]], "server.Path": [[75, "server-path"]], "server.SecurityLimits": [[75, "server-securitylimits"]], "server.Selinux": [[75, "server-selinux"]], "server.Sysctl": [[75, "server-sysctl"]], "server.TmpDir": [[75, "server-tmpdir"]], "server.User": [[75, "server-user"]], "server.Users": [[75, "server-users"]], "server.Which": [[75, "server-which"]], "Snap Facts": [[76, "snap-facts"]], "snap.SnapBaseFact": [[76, "snap-snapbasefact"]], "snap.SnapPackage": [[76, "snap-snappackage"]], "snap.SnapPackages": [[76, "snap-snappackages"]], "Systemd Facts": [[77, "systemd-facts"]], "systemd.SystemdEnabled": [[77, "systemd-systemdenabled"]], "systemd.SystemdStatus": [[77, "systemd-systemdstatus"]], "Sysvinit Facts": [[78, "sysvinit-facts"]], "sysvinit.InitdStatus": [[78, "sysvinit-initdstatus"]], "Upstart Facts": [[79, "upstart-facts"]], "upstart.UpstartStatus": [[79, "upstart-upstartstatus"]], "Vzctl Facts": [[80, "vzctl-facts"]], "vzctl.OpenvzContainers": [[80, "vzctl-openvzcontainers"]], "Xbps Facts": [[81, "xbps-facts"]], "xbps.XbpsPackages": [[81, "xbps-xbpspackages"]], "Yum Facts": [[82, "yum-facts"]], "yum.YumRepositories": [[82, "yum-yumrepositories"]], "Zfs Facts": [[83, "zfs-facts"]], "zfs.Datasets": [[83, "zfs-datasets"]], "zfs.Filesystems": [[83, "zfs-filesystems"]], "zfs.Pools": [[83, "zfs-pools"]], "zfs.Snapshots": [[83, "zfs-snapshots"]], "zfs.Volumes": [[83, "zfs-volumes"]], "Zypper Facts": [[84, "zypper-facts"]], "zypper.ZypperRepositories": [[84, "zypper-zypperrepositories"]], "Frequently Asked Questions": [[85, "frequently-asked-questions"]], "How do I get the name of the current host?": [[85, "how-do-i-get-the-name-of-the-current-host"]], "How do I use sudo in an operation?": [[85, "how-do-i-use-sudo-in-an-operation"]], "How do I chmod or chown a file/directory/link?": [[85, "how-do-i-chmod-or-chown-a-file-directory-link"]], "Getting Started": [[86, "getting-started"]], "Ad-hoc commands with pyinfra": [[86, "ad-hoc-commands-with-pyinfra"]], "State definitions": [[86, "state-definitions"]], "Note for Docker users": [[86, null]], "Create a Deploy": [[86, "create-a-deploy"]], "pyinfra Documentation": [[87, "pyinfra-documentation"]], "Using pyinfra": [[87, "using-pyinfra"]], "Deploy Reference": [[87, "deploy-reference"]], "Installation": [[88, "installation"]], "Pip": [[88, "pip"]], "Windows": [[88, "windows"]], "Inventory & Data": [[89, "inventory-data"]], "Inventory Files": [[89, "inventory-files"]], "Limiting inventory at runtime": [[89, "limiting-inventory-at-runtime"]], "Host Data": [[89, "host-data"]], "Group Data Files": [[89, "group-data-files"]], "Data Hierarchy": [[89, "data-hierarchy"]], "Connecting with Data": [[89, "connecting-with-data"]], "Global Arguments with Data": [[89, "global-arguments-with-data"]], "External Sources for Data": [[89, "external-sources-for-data"]], "Operations Index": [[90, "operations-index"]], "Basics": [[90, null]], "System Packages": [[90, null]], "Language Packages": [[90, null]], "Databases": [[90, null]], "Apk Operations": [[91, "apk-operations"]], "apk.packages": [[91, "apk-packages"]], "apk.update": [[91, "apk-update"]], "Stateless operation": [[91, null], [91, null], [92, null], [92, null], [92, null], [92, null], [93, null], [93, null], [93, null], [96, null], [97, null], [97, null], [98, null], [98, null], [99, null], [99, null], [106, null], [106, null], [106, null], [109, null], [109, null], [112, null], [112, null], [113, null], [113, null], [113, null], [114, null], [114, null], [114, null], [114, null], [114, null], [115, null], [116, null], [116, null], [117, null], [119, null], [119, null], [119, null], [119, null], [119, null], [121, null], [121, null], [122, null], [125, null], [125, null], [125, null], [125, null], [125, null], [125, null], [125, null], [125, null], [126, null], [126, null], [127, null], [127, null], [129, null]], "apk.upgrade": [[91, "apk-upgrade"]], "Apt Operations": [[92, "apt-operations"]], "apt.deb": [[92, "apt-deb"]], "apt.dist_upgrade": [[92, "apt-dist-upgrade"]], "apt.key": [[92, "apt-key"]], "apt.packages": [[92, "apt-packages"]], "apt.ppa": [[92, "apt-ppa"]], "apt.repo": [[92, "apt-repo"]], "apt.update": [[92, "apt-update"]], "apt.upgrade": [[92, "apt-upgrade"]], "Brew Operations": [[93, "brew-operations"]], "brew.cask_upgrade": [[93, "brew-cask-upgrade"]], "brew.casks": [[93, "brew-casks"]], "brew.packages": [[93, "brew-packages"]], "brew.tap": [[93, "brew-tap"]], "brew.update": [[93, "brew-update"]], "brew.upgrade": [[93, "brew-upgrade"]], "Bsdinit Operations": [[94, "bsdinit-operations"]], "bsdinit.service": [[94, "bsdinit-service"]], "Cargo Operations": [[95, "cargo-operations"]], "cargo.packages": [[95, "cargo-packages"]], "Choco Operations": [[96, "choco-operations"]], "choco.install": [[96, "choco-install"]], "choco.packages": [[96, "choco-packages"]], "Dnf Operations": [[97, "dnf-operations"]], "dnf.key": [[97, "dnf-key"]], "dnf.packages": [[97, "dnf-packages"]], "dnf.repo": [[97, "dnf-repo"]], "dnf.rpm": [[97, "dnf-rpm"]], "dnf.update": [[97, "dnf-update"]], "Docker Operations": [[98, "docker-operations"]], "docker.container": [[98, "docker-container"]], "docker.image": [[98, "docker-image"]], "docker.network": [[98, "docker-network"]], "docker.prune": [[98, "docker-prune"]], "docker.volume": [[98, "docker-volume"]], "Files Operations": [[99, "files-operations"]], "files.block": [[99, "files-block"]], "files.directory": [[99, "files-directory"]], "files.download": [[99, "files-download"]], "files.file": [[99, "files-file"]], "files.flags": [[99, "files-flags"]], "files.get": [[99, "files-get"]], "files.line": [[99, "files-line"]], "files.link": [[99, "files-link"]], "files.put": [[99, "files-put"]], "files.replace": [[99, "files-replace"]], "files.rsync": [[99, "files-rsync"]], "files.sync": [[99, "files-sync"]], "files.template": [[99, "files-template"]], "Flatpak Operations": [[100, "flatpak-operations"]], "flatpak.packages": [[100, "flatpak-packages"]], "Gem Operations": [[101, "gem-operations"]], "gem.packages": [[101, "gem-packages"]], "Git Operations": [[102, "git-operations"]], "git.bare_repo": [[102, "git-bare-repo"]], "git.config": [[102, "git-config"]], "git.repo": [[102, "git-repo"]], "git.worktree": [[102, "git-worktree"]], "Iptables Operations": [[103, "iptables-operations"]], "iptables.chain": [[103, "iptables-chain"]], "iptables.rule": [[103, "iptables-rule"]], "Launchd Operations": [[104, "launchd-operations"]], "launchd.service": [[104, "launchd-service"]], "Lxd Operations": [[105, "lxd-operations"]], "lxd.container": [[105, "lxd-container"]], "Mysql Operations": [[106, "mysql-operations"]], "mysql.database": [[106, "mysql-database"]], "mysql.dump": [[106, "mysql-dump"]], "mysql.load": [[106, "mysql-load"]], "mysql.privileges": [[106, "mysql-privileges"]], "mysql.sql": [[106, "mysql-sql"]], "mysql.user": [[106, "mysql-user"]], "Npm Operations": [[107, "npm-operations"]], "npm.packages": [[107, "npm-packages"]], "Openrc Operations": [[108, "openrc-operations"]], "openrc.service": [[108, "openrc-service"]], "Pacman Operations": [[109, "pacman-operations"]], "pacman.packages": [[109, "pacman-packages"]], "pacman.update": [[109, "pacman-update"]], "pacman.upgrade": [[109, "pacman-upgrade"]], "Pip Operations": [[110, "pip-operations"]], "pip.packages": [[110, "pip-packages"]], "pip.venv": [[110, "pip-venv"]], "pip.virtualenv": [[110, "pip-virtualenv"]], "Pkg Operations": [[111, "pkg-operations"]], "pkg.packages": [[111, "pkg-packages"]], "Pkgin Operations": [[112, "pkgin-operations"]], "pkgin.packages": [[112, "pkgin-packages"]], "pkgin.update": [[112, "pkgin-update"]], "pkgin.upgrade": [[112, "pkgin-upgrade"]], "Postgres Operations": [[113, "postgres-operations"]], "postgres.database": [[113, "postgres-database"]], "postgres.dump": [[113, "postgres-dump"]], "postgres.load": [[113, "postgres-load"]], "postgres.role": [[113, "postgres-role"]], "postgres.sql": [[113, "postgres-sql"]], "Postgresql Operations": [[114, "postgresql-operations"]], "postgresql.database": [[114, "postgresql-database"]], "postgresql.dump": [[114, "postgresql-dump"]], "postgresql.load": [[114, "postgresql-load"]], "postgresql.role": [[114, "postgresql-role"]], "postgresql.sql": [[114, "postgresql-sql"]], "Puppet Operations": [[115, "puppet-operations"]], "puppet.agent": [[115, "puppet-agent"]], "Python Operations": [[116, "python-operations"]], "python.call": [[116, "python-call"]], "python.raise_exception": [[116, "python-raise-exception"]], "Runit Operations": [[117, "runit-operations"]], "runit.auto": [[117, "runit-auto"]], "runit.manage": [[117, "runit-manage"]], "runit.service": [[117, "runit-service"]], "runit.wait_runsv": [[117, "runit-wait-runsv"]], "Selinux Operations": [[118, "selinux-operations"]], "selinux.boolean": [[118, "selinux-boolean"]], "selinux.file_context": [[118, "selinux-file-context"]], "selinux.file_context_mapping": [[118, "selinux-file-context-mapping"]], "selinux.port": [[118, "selinux-port"]], "Server Operations": [[119, "server-operations"]], "server.crontab": [[119, "server-crontab"]], "server.group": [[119, "server-group"]], "server.hostname": [[119, "server-hostname"]], "server.locale": [[119, "server-locale"]], "server.modprobe": [[119, "server-modprobe"]], "server.mount": [[119, "server-mount"]], "server.packages": [[119, "server-packages"]], "server.reboot": [[119, "server-reboot"]], "server.script": [[119, "server-script"]], "server.script_template": [[119, "server-script-template"]], "server.security_limit": [[119, "server-security-limit"]], "server.service": [[119, "server-service"]], "server.shell": [[119, "server-shell"]], "server.sysctl": [[119, "server-sysctl"]], "server.user": [[119, "server-user"]], "server.user_authorized_keys": [[119, "server-user-authorized-keys"]], "server.wait": [[119, "server-wait"]], "Snap Operations": [[120, "snap-operations"]], "snap.package": [[120, "snap-package"]], "Ssh Operations": [[121, "ssh-operations"]], "ssh.command": [[121, "ssh-command"]], "ssh.download": [[121, "ssh-download"]], "ssh.keyscan": [[121, "ssh-keyscan"]], "ssh.upload": [[121, "ssh-upload"]], "Systemd Operations": [[122, "systemd-operations"]], "systemd.daemon_reload": [[122, "systemd-daemon-reload"]], "systemd.service": [[122, "systemd-service"]], "Sysvinit Operations": [[123, "sysvinit-operations"]], "sysvinit.enable": [[123, "sysvinit-enable"]], "sysvinit.service": [[123, "sysvinit-service"]], "Upstart Operations": [[124, "upstart-operations"]], "upstart.service": [[124, "upstart-service"]], "Vzctl Operations": [[125, "vzctl-operations"]], "vzctl.create": [[125, "vzctl-create"]], "vzctl.delete": [[125, "vzctl-delete"]], "vzctl.mount": [[125, "vzctl-mount"]], "vzctl.restart": [[125, "vzctl-restart"]], "vzctl.set": [[125, "vzctl-set"]], "vzctl.start": [[125, "vzctl-start"]], "vzctl.stop": [[125, "vzctl-stop"]], "vzctl.unmount": [[125, "vzctl-unmount"]], "Xbps Operations": [[126, "xbps-operations"]], "xbps.packages": [[126, "xbps-packages"]], "xbps.update": [[126, "xbps-update"]], "xbps.upgrade": [[126, "xbps-upgrade"]], "Yum Operations": [[127, "yum-operations"]], "yum.key": [[127, "yum-key"]], "yum.packages": [[127, "yum-packages"]], "yum.repo": [[127, "yum-repo"]], "yum.rpm": [[127, "yum-rpm"]], "yum.update": [[127, "yum-update"]], "Zfs Operations": [[128, "zfs-operations"]], "zfs.dataset": [[128, "zfs-dataset"]], "zfs.filesystem": [[128, "zfs-filesystem"]], "zfs.snapshot": [[128, "zfs-snapshot"]], "zfs.volume": [[128, "zfs-volume"]], "Zypper Operations": [[129, "zypper-operations"]], "zypper.packages": [[129, "zypper-packages"]], "zypper.repo": [[129, "zypper-repo"]], "zypper.rpm": [[129, "zypper-rpm"]], "zypper.update": [[129, "zypper-update"]], "Performance": [[130, "performance"]], "Source Serif Pro": [[131, "source-serif-pro"]], "Installation instructions": [[131, "installation-instructions"]], "Getting Involved": [[131, "getting-involved"]], "Further information": [[131, "further-information"]], "Help & Support": [[132, "help-support"]], "I think I\u2019ve got a bug!": [[132, "i-think-i-ve-got-a-bug"]], "I have an idea!": [[132, "i-have-an-idea"]], "I\u2019d like to contribute!": [[132, "i-d-like-to-contribute"]], "Using Operations": [[133, "using-operations"]], "The host Object": [[133, "the-host-object"]], "Host & Group Data": [[133, "host-group-data"]], "Host Facts": [[133, "host-facts"]], "The inventory Object": [[133, "the-inventory-object"]], "Operation Changes & Output": [[133, "operation-changes-output"]], "Operation Output": [[133, "operation-output"]], "Nested Operations": [[133, "nested-operations"]], "Include Multiple Files": [[133, "include-multiple-files"]], "The config Object": [[133, "the-config-object"]], "Enforcing Requirements": [[133, "enforcing-requirements"]]}, "indexentries": {"allarguments (class in pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.AllArguments"]], "argumentmeta (class in pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.ArgumentMeta"]], "connectorarguments (class in pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.ConnectorArguments"]], "executionarguments (class in pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.ExecutionArguments"]], "metaarguments (class in pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.MetaArguments"]], "all_global_arguments() (in module pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.all_global_arguments"]], "default (pyinfra.api.arguments.argumentmeta attribute)": [[5, "pyinfra.api.arguments.ArgumentMeta.default"]], "description (pyinfra.api.arguments.argumentmeta attribute)": [[5, "pyinfra.api.arguments.ArgumentMeta.description"]], "generate_env() (in module pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.generate_env"]], "handler (pyinfra.api.arguments.argumentmeta attribute)": [[5, "pyinfra.api.arguments.ArgumentMeta.handler"]], "module": [[5, "module-pyinfra.api.arguments"], [6, "module-pyinfra.api.arguments_typed"], [7, "module-pyinfra.api.command"], [8, "module-pyinfra.api.config"], [9, "module-pyinfra.api.connect"], [10, "module-pyinfra.api.connectors"], [11, "module-pyinfra.api.deploy"], [12, "module-pyinfra.api.exceptions"], [13, "module-pyinfra.api.facts"], [14, "module-pyinfra.api.host"], [15, "module-pyinfra.api.inventory"], [16, "module-pyinfra.api.operation"], [17, "module-pyinfra.api.operations"], [18, "module-pyinfra.api.state"], [19, "module-pyinfra.api.util"], [20, "module-pyinfra.context"], [21, "module-pyinfra.local"], [22, "module-pyinfra.progress"], [23, "module-pyinfra.version"]], "name (pyinfra.api.arguments.allarguments attribute)": [[5, "pyinfra.api.arguments.AllArguments.name"]], "name (pyinfra.api.arguments.metaarguments attribute)": [[5, "pyinfra.api.arguments.MetaArguments.name"]], "pop_global_arguments() (in module pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.pop_global_arguments"]], "pyinfra.api.arguments": [[5, "module-pyinfra.api.arguments"]], "pyinfraoperation (class in pyinfra.api.arguments_typed)": [[6, "pyinfra.api.arguments_typed.PyinfraOperation"]], "pyinfra.api.arguments_typed": [[6, "module-pyinfra.api.arguments_typed"]], "filedownloadcommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.FileDownloadCommand"]], "fileuploadcommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.FileUploadCommand"]], "functioncommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.FunctionCommand"]], "maskstring (class in pyinfra.api.command)": [[7, "pyinfra.api.command.MaskString"]], "pyinfracommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.PyinfraCommand"]], "quotestring (class in pyinfra.api.command)": [[7, "pyinfra.api.command.QuoteString"]], "rsynccommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.RsyncCommand"]], "stringcommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.StringCommand"]], "connector_arguments (pyinfra.api.command.pyinfracommand attribute)": [[7, "pyinfra.api.command.PyinfraCommand.connector_arguments"]], "execute() (pyinfra.api.command.filedownloadcommand method)": [[7, "pyinfra.api.command.FileDownloadCommand.execute"]], "execute() (pyinfra.api.command.fileuploadcommand method)": [[7, "pyinfra.api.command.FileUploadCommand.execute"]], "execute() (pyinfra.api.command.functioncommand method)": [[7, "pyinfra.api.command.FunctionCommand.execute"]], "execute() (pyinfra.api.command.pyinfracommand method)": [[7, "pyinfra.api.command.PyinfraCommand.execute"]], "execute() (pyinfra.api.command.rsynccommand method)": [[7, "pyinfra.api.command.RsyncCommand.execute"]], "execute() (pyinfra.api.command.stringcommand method)": [[7, "pyinfra.api.command.StringCommand.execute"]], "get_masked_value() (pyinfra.api.command.stringcommand method)": [[7, "pyinfra.api.command.StringCommand.get_masked_value"]], "get_raw_value() (pyinfra.api.command.stringcommand method)": [[7, "pyinfra.api.command.StringCommand.get_raw_value"]], "make_formatted_string_command() (in module pyinfra.api.command)": [[7, "pyinfra.api.command.make_formatted_string_command"]], "obj (pyinfra.api.command.quotestring attribute)": [[7, "pyinfra.api.command.QuoteString.obj"]], "pyinfra.api.command": [[7, "module-pyinfra.api.command"]], "connect_timeout (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.CONNECT_TIMEOUT"]], "config (class in pyinfra.api.config)": [[8, "pyinfra.api.config.Config"]], "configdefaults (class in pyinfra.api.config)": [[8, "pyinfra.api.config.ConfigDefaults"]], "default_temp_dir (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.DEFAULT_TEMP_DIR"]], "doas (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.DOAS"]], "doas_user (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.DOAS_USER"]], "fail_percent (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.FAIL_PERCENT"]], "ignore_errors (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.IGNORE_ERRORS"]], "parallel (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.PARALLEL"]], "preserve_sudo_env (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.PRESERVE_SUDO_ENV"]], "preserve_su_env (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.PRESERVE_SU_ENV"]], "require_packages (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.REQUIRE_PACKAGES"]], "require_pyinfra_version (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.REQUIRE_PYINFRA_VERSION"]], "shell (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SHELL"]], "sudo (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SUDO"]], "sudo_password (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SUDO_PASSWORD"]], "sudo_user (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SUDO_USER"]], "su_shell (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SU_SHELL"]], "su_user (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SU_USER"]], "temp_dir (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.TEMP_DIR"]], "use_sudo_login (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.USE_SUDO_LOGIN"]], "use_su_login (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.USE_SU_LOGIN"]], "check_pyinfra_version() (in module pyinfra.api.config)": [[8, "pyinfra.api.config.check_pyinfra_version"]], "check_require_packages() (in module pyinfra.api.config)": [[8, "pyinfra.api.config.check_require_packages"]], "copy() (pyinfra.api.config.config method)": [[8, "pyinfra.api.config.Config.copy"]], "get_current_state() (pyinfra.api.config.config method)": [[8, "pyinfra.api.config.Config.get_current_state"]], "lock_current_state() (pyinfra.api.config.config method)": [[8, "pyinfra.api.config.Config.lock_current_state"]], "pyinfra.api.config": [[8, "module-pyinfra.api.config"]], "reset_locked_state() (pyinfra.api.config.config method)": [[8, "pyinfra.api.config.Config.reset_locked_state"]], "set_current_state() (pyinfra.api.config.config method)": [[8, "pyinfra.api.config.Config.set_current_state"]], "connect_all() (in module pyinfra.api.connect)": [[9, "pyinfra.api.connect.connect_all"]], "disconnect_all() (in module pyinfra.api.connect)": [[9, "pyinfra.api.connect.disconnect_all"]], "pyinfra.api.connect": [[9, "module-pyinfra.api.connect"]], "get_all_connectors() (in module pyinfra.api.connectors)": [[10, "pyinfra.api.connectors.get_all_connectors"]], "get_execution_connector() (in module pyinfra.api.connectors)": [[10, "pyinfra.api.connectors.get_execution_connector"]], "get_execution_connectors() (in module pyinfra.api.connectors)": [[10, "pyinfra.api.connectors.get_execution_connectors"]], "pyinfra.api.connectors": [[10, "module-pyinfra.api.connectors"]], "add_deploy() (in module pyinfra.api.deploy)": [[11, "pyinfra.api.deploy.add_deploy"]], "deploy() (in module pyinfra.api.deploy)": [[11, "pyinfra.api.deploy.deploy"]], "pyinfra.api.deploy": [[11, "module-pyinfra.api.deploy"]], "argumenttypeerror": [[12, "pyinfra.api.exceptions.ArgumentTypeError"]], "connecterror": [[12, "pyinfra.api.exceptions.ConnectError"]], "connectordatatypeerror": [[12, "pyinfra.api.exceptions.ConnectorDataTypeError"]], "deployerror": [[12, "pyinfra.api.exceptions.DeployError"]], "facterror": [[12, "pyinfra.api.exceptions.FactError"]], "facttypeerror": [[12, "pyinfra.api.exceptions.FactTypeError"]], "factvalueerror": [[12, "pyinfra.api.exceptions.FactValueError"]], "inventoryerror": [[12, "pyinfra.api.exceptions.InventoryError"]], "noconnectorerror": [[12, "pyinfra.api.exceptions.NoConnectorError"]], "nogrouperror": [[12, "pyinfra.api.exceptions.NoGroupError"]], "nohosterror": [[12, "pyinfra.api.exceptions.NoHostError"]], "operationerror": [[12, "pyinfra.api.exceptions.OperationError"]], "operationtypeerror": [[12, "pyinfra.api.exceptions.OperationTypeError"]], "operationvalueerror": [[12, "pyinfra.api.exceptions.OperationValueError"]], "pyinfraerror": [[12, "pyinfra.api.exceptions.PyinfraError"]], "pyinfra.api.exceptions": [[12, "module-pyinfra.api.exceptions"]], "factbase (class in pyinfra.api.facts)": [[13, "pyinfra.api.facts.FactBase"]], "shortfactbase (class in pyinfra.api.facts)": [[13, "pyinfra.api.facts.ShortFactBase"]], "abstract (pyinfra.api.facts.factbase attribute)": [[13, "pyinfra.api.facts.FactBase.abstract"]], "command (pyinfra.api.facts.factbase attribute)": [[13, "pyinfra.api.facts.FactBase.command"]], "default() (pyinfra.api.facts.factbase static method)": [[13, "pyinfra.api.facts.FactBase.default"]], "fact (pyinfra.api.facts.shortfactbase attribute)": [[13, "pyinfra.api.facts.ShortFactBase.fact"]], "get_fact() (in module pyinfra.api.facts)": [[13, "pyinfra.api.facts.get_fact"]], "get_facts() (in module pyinfra.api.facts)": [[13, "pyinfra.api.facts.get_facts"]], "get_host_fact() (in module pyinfra.api.facts)": [[13, "pyinfra.api.facts.get_host_fact"]], "get_short_facts() (in module pyinfra.api.facts)": [[13, "pyinfra.api.facts.get_short_facts"]], "name (pyinfra.api.facts.factbase attribute)": [[13, "pyinfra.api.facts.FactBase.name"]], "name (pyinfra.api.facts.shortfactbase attribute)": [[13, "pyinfra.api.facts.ShortFactBase.name"]], "process() (pyinfra.api.facts.factbase method)": [[13, "pyinfra.api.facts.FactBase.process"]], "process_data() (pyinfra.api.facts.shortfactbase method)": [[13, "pyinfra.api.facts.ShortFactBase.process_data"]], "process_pipeline() (pyinfra.api.facts.factbase method)": [[13, "pyinfra.api.facts.FactBase.process_pipeline"]], "pyinfra.api.facts": [[13, "module-pyinfra.api.facts"]], "requires_command() (pyinfra.api.facts.factbase method)": [[13, "pyinfra.api.facts.FactBase.requires_command"]], "shell_executable (pyinfra.api.facts.factbase attribute)": [[13, "pyinfra.api.facts.FactBase.shell_executable"]], "host (class in pyinfra.api.host)": [[14, "pyinfra.api.host.Host"]], "hostdata (class in pyinfra.api.host)": [[14, "pyinfra.api.host.HostData"]], "t (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.T"]], "arguments() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.arguments"]], "check_can_rsync() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.check_can_rsync"]], "connect() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.connect"]], "connected (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.connected"]], "connector (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.connector"]], "connector_cls (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.connector_cls"]], "connector_data (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.connector_data"]], "current_deploy_data (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_deploy_data"]], "current_deploy_kwargs (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_deploy_kwargs"]], "current_deploy_name (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_deploy_name"]], "current_op_deploy_data (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_op_deploy_data"]], "current_op_global_arguments (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_op_global_arguments"]], "current_op_hash (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_op_hash"]], "deploy() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.deploy"]], "dict() (pyinfra.api.host.hostdata method)": [[14, "pyinfra.api.host.HostData.dict"]], "disconnect() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.disconnect"]], "executing_op_hash (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.executing_op_hash"]], "extract_callable_datas() (in module pyinfra.api.host)": [[14, "pyinfra.api.host.extract_callable_datas"]], "get() (pyinfra.api.host.hostdata method)": [[14, "pyinfra.api.host.HostData.get"]], "get_deploy_data() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.get_deploy_data"]], "get_fact() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.get_fact"]], "get_file() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.get_file"]], "get_temp_filename() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.get_temp_filename"]], "group_data (pyinfra.api.host.host property)": [[14, "pyinfra.api.host.Host.group_data"]], "host_data (pyinfra.api.host.host property)": [[14, "pyinfra.api.host.Host.host_data"]], "in_callback_op (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.in_callback_op"]], "in_deploy (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.in_deploy"]], "in_op (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.in_op"]], "init() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.init"]], "log() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.log"]], "log_styled() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.log_styled"]], "loop() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.loop"]], "loop_position (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.loop_position"]], "nested_executing_op_hash (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.nested_executing_op_hash"]], "noop() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.noop"]], "override_datas (pyinfra.api.host.hostdata attribute)": [[14, "pyinfra.api.host.HostData.override_datas"]], "print_prefix (pyinfra.api.host.host property)": [[14, "pyinfra.api.host.Host.print_prefix"]], "put_file() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.put_file"]], "pyinfra.api.host": [[14, "module-pyinfra.api.host"]], "rsync() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.rsync"]], "run_shell_command() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.run_shell_command"]], "state (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.state"]], "style_print_prefix() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.style_print_prefix"]], "when() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.when"]], "inventory (class in pyinfra.api.inventory)": [[15, "pyinfra.api.inventory.Inventory"]], "empty() (pyinfra.api.inventory.inventory static method)": [[15, "pyinfra.api.inventory.Inventory.empty"]], "extract_name_data() (in module pyinfra.api.inventory)": [[15, "pyinfra.api.inventory.extract_name_data"]], "get_data() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_data"]], "get_group() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_group"]], "get_group_data() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_group_data"]], "get_groups_data() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_groups_data"]], "get_host() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_host"]], "get_host_data() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_host_data"]], "get_override_data() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_override_data"]], "iter_activated_hosts() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.iter_activated_hosts"]], "iter_active_hosts() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.iter_active_hosts"]], "len_activated_hosts() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.len_activated_hosts"]], "len_active_hosts() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.len_active_hosts"]], "make_hosts_and_groups() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.make_hosts_and_groups"]], "pyinfra.api.inventory": [[15, "module-pyinfra.api.inventory"]], "state (pyinfra.api.inventory.inventory attribute)": [[15, "pyinfra.api.inventory.Inventory.state"]], "operationmeta (class in pyinfra.api.operation)": [[16, "pyinfra.api.operation.OperationMeta"]], "add_op() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.add_op"]], "attach_args() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.attach_args"]], "changed (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.changed"]], "did_change() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.did_change"]], "did_error() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.did_error"]], "did_not_change() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.did_not_change"]], "did_succeed() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.did_succeed"]], "ensure_shared_op_meta() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.ensure_shared_op_meta"]], "execute_immediately() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.execute_immediately"]], "executed (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.executed"]], "generate_operation_name() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.generate_operation_name"]], "get_operation_name_from_func() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.get_operation_name_from_func"]], "is_complete() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.is_complete"]], "operation() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.operation"]], "pyinfra.api.operation": [[16, "module-pyinfra.api.operation"]], "set_complete() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.set_complete"]], "solve_operation_consistency() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.solve_operation_consistency"]], "stderr (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.stderr"]], "stderr_lines (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.stderr_lines"]], "stdout (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.stdout"]], "stdout_lines (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.stdout_lines"]], "will_change (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.will_change"]], "pyinfra.api.operations": [[17, "module-pyinfra.api.operations"]], "run_host_op() (in module pyinfra.api.operations)": [[17, "pyinfra.api.operations.run_host_op"]], "run_ops() (in module pyinfra.api.operations)": [[17, "pyinfra.api.operations.run_ops"]], "basestatecallback (class in pyinfra.api.state)": [[18, "pyinfra.api.state.BaseStateCallback"]], "connect (pyinfra.api.state.statestage attribute)": [[18, "pyinfra.api.state.StateStage.Connect"]], "disconnect (pyinfra.api.state.statestage attribute)": [[18, "pyinfra.api.state.StateStage.Disconnect"]], "execute (pyinfra.api.state.statestage attribute)": [[18, "pyinfra.api.state.StateStage.Execute"]], "prepare (pyinfra.api.state.statestage attribute)": [[18, "pyinfra.api.state.StateStage.Prepare"]], "setup (pyinfra.api.state.statestage attribute)": [[18, "pyinfra.api.state.StateStage.Setup"]], "state (class in pyinfra.api.state)": [[18, "pyinfra.api.state.State"]], "statehostmeta (class in pyinfra.api.state)": [[18, "pyinfra.api.state.StateHostMeta"]], "statehostresults (class in pyinfra.api.state)": [[18, "pyinfra.api.state.StateHostResults"]], "stateoperationhostdata (class in pyinfra.api.state)": [[18, "pyinfra.api.state.StateOperationHostData"]], "stateoperationmeta (class in pyinfra.api.state)": [[18, "pyinfra.api.state.StateOperationMeta"]], "statestage (class in pyinfra.api.state)": [[18, "pyinfra.api.state.StateStage"]], "activate_host() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.activate_host"]], "add_callback_handler() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.add_callback_handler"]], "args (pyinfra.api.state.stateoperationmeta attribute)": [[18, "pyinfra.api.state.StateOperationMeta.args"]], "check_for_changes (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.check_for_changes"]], "command_generator (pyinfra.api.state.stateoperationhostdata attribute)": [[18, "pyinfra.api.state.StateOperationHostData.command_generator"]], "config (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.config"]], "current_deploy_filename (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.current_deploy_filename"]], "current_exec_filename (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.current_exec_filename"]], "current_op_file_number (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.current_op_file_number"]], "current_stage (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.current_stage"]], "cwd (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.cwd"]], "error_ops (pyinfra.api.state.statehostresults attribute)": [[18, "pyinfra.api.state.StateHostResults.error_ops"]], "fail_hosts() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.fail_hosts"]], "get_meta_for_host() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_meta_for_host"]], "get_op_data_for_host() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_op_data_for_host"]], "get_op_meta() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_op_meta"]], "get_op_order() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_op_order"]], "get_results_for_host() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_results_for_host"]], "get_warning_counter() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_warning_counter"]], "global_arguments (pyinfra.api.state.stateoperationhostdata attribute)": [[18, "pyinfra.api.state.StateOperationHostData.global_arguments"]], "global_arguments (pyinfra.api.state.stateoperationmeta attribute)": [[18, "pyinfra.api.state.StateOperationMeta.global_arguments"]], "host_before_connect() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.host_before_connect"]], "host_connect() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.host_connect"]], "host_connect_error() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.host_connect_error"]], "host_disconnect() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.host_disconnect"]], "ignored_error_ops (pyinfra.api.state.statehostresults attribute)": [[18, "pyinfra.api.state.StateHostResults.ignored_error_ops"]], "increment_warning_counter() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.increment_warning_counter"]], "init() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.init"]], "initialised (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.initialised"]], "inventory (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.inventory"]], "is_executing (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.is_executing"]], "is_host_in_limit() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.is_host_in_limit"]], "names (pyinfra.api.state.stateoperationmeta attribute)": [[18, "pyinfra.api.state.StateOperationMeta.names"]], "op_hashes (pyinfra.api.state.statehostmeta attribute)": [[18, "pyinfra.api.state.StateHostMeta.op_hashes"]], "op_order (pyinfra.api.state.stateoperationmeta attribute)": [[18, "pyinfra.api.state.StateOperationMeta.op_order"]], "operation_end() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.operation_end"]], "operation_host_error() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.operation_host_error"]], "operation_host_start() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.operation_host_start"]], "operation_host_success() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.operation_host_success"]], "operation_meta (pyinfra.api.state.stateoperationhostdata attribute)": [[18, "pyinfra.api.state.StateOperationHostData.operation_meta"]], "operation_start() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.operation_start"]], "ops (pyinfra.api.state.statehostmeta attribute)": [[18, "pyinfra.api.state.StateHostMeta.ops"]], "ops (pyinfra.api.state.statehostresults attribute)": [[18, "pyinfra.api.state.StateHostResults.ops"]], "ops_change (pyinfra.api.state.statehostmeta attribute)": [[18, "pyinfra.api.state.StateHostMeta.ops_change"]], "ops_no_change (pyinfra.api.state.statehostmeta attribute)": [[18, "pyinfra.api.state.StateHostMeta.ops_no_change"]], "parent_op_hash (pyinfra.api.state.stateoperationhostdata attribute)": [[18, "pyinfra.api.state.StateOperationHostData.parent_op_hash"]], "partial_ops (pyinfra.api.state.statehostresults attribute)": [[18, "pyinfra.api.state.StateHostResults.partial_ops"]], "pool (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.pool"]], "print_fact_info (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_fact_info"]], "print_fact_input (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_fact_input"]], "print_fact_output (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_fact_output"]], "print_input (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_input"]], "print_noop_info (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_noop_info"]], "print_output (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_output"]], "pyinfra.api.state": [[18, "module-pyinfra.api.state"]], "set_op_data_for_host() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.set_op_data_for_host"]], "set_stage() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.set_stage"]], "should_check_for_changes() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.should_check_for_changes"]], "should_raise_failed_hosts (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.should_raise_failed_hosts"]], "stage_warnings (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.stage_warnings"]], "success_ops (pyinfra.api.state.statehostresults attribute)": [[18, "pyinfra.api.state.StateHostResults.success_ops"]], "trigger_callbacks() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.trigger_callbacks"]], "cache_key (pyinfra.api.util.get_file_io property)": [[19, "pyinfra.api.util.get_file_io.cache_key"]], "filename_or_io (pyinfra.api.util.get_file_io attribute)": [[19, "pyinfra.api.util.get_file_io.filename_or_io"]], "format_exception() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.format_exception"]], "get_call_location() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_call_location"]], "get_caller_frameinfo() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_caller_frameinfo"]], "get_file_io (class in pyinfra.api.util)": [[19, "pyinfra.api.util.get_file_io"]], "get_file_path() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_file_path"]], "get_file_sha1() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_file_sha1"]], "get_kwargs_str() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_kwargs_str"]], "get_operation_order_from_stack() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_operation_order_from_stack"]], "get_path_permissions_mode() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_path_permissions_mode"]], "get_template() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_template"]], "log_error_or_warning() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.log_error_or_warning"]], "log_host_command_error() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.log_host_command_error"]], "log_operation_start() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.log_operation_start"]], "make_hash() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.make_hash"]], "memoize() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.memoize"]], "mode (pyinfra.api.util.get_file_io attribute)": [[19, "pyinfra.api.util.get_file_io.mode"]], "print_host_combined_output() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.print_host_combined_output"]], "pyinfra.api.util": [[19, "module-pyinfra.api.util"]], "raise_if_bad_type() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.raise_if_bad_type"]], "sha1_hash() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.sha1_hash"]], "try_int() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.try_int"]], "contextmanager (class in pyinfra.context)": [[20, "pyinfra.context.ContextManager"]], "contextobject (class in pyinfra.context)": [[20, "pyinfra.context.ContextObject"]], "localcontextobject (class in pyinfra.context)": [[20, "pyinfra.context.LocalContextObject"]], "container (class in pyinfra.context)": [[20, "pyinfra.context.container"]], "get() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.get"]], "init_base_classes() (in module pyinfra.context)": [[20, "pyinfra.context.init_base_classes"]], "isset() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.isset"]], "module (pyinfra.context.container attribute)": [[20, "pyinfra.context.container.module"]], "pyinfra.context": [[20, "module-pyinfra.context"]], "reset() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.reset"]], "set() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.set"]], "set_base() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.set_base"]], "use() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.use"]], "include() (in module pyinfra.local)": [[21, "pyinfra.local.include"]], "pyinfra.local": [[21, "module-pyinfra.local"]], "shell() (in module pyinfra.local)": [[21, "pyinfra.local.shell"]], "progress_spinner() (in module pyinfra.progress)": [[22, "pyinfra.progress.progress_spinner"]], "pyinfra.progress": [[22, "module-pyinfra.progress"]], "pyinfra.version": [[23, "module-pyinfra.version"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["api/connectors", "api/deploys", "api/index", "api/operations", "api/reference", "apidoc/pyinfra.api.arguments", "apidoc/pyinfra.api.arguments_typed", "apidoc/pyinfra.api.command", "apidoc/pyinfra.api.config", "apidoc/pyinfra.api.connect", "apidoc/pyinfra.api.connectors", "apidoc/pyinfra.api.deploy", "apidoc/pyinfra.api.exceptions", "apidoc/pyinfra.api.facts", "apidoc/pyinfra.api.host", "apidoc/pyinfra.api.inventory", "apidoc/pyinfra.api.operation", "apidoc/pyinfra.api.operations", "apidoc/pyinfra.api.state", "apidoc/pyinfra.api.util", "apidoc/pyinfra.context", "apidoc/pyinfra.local", "apidoc/pyinfra.progress", "apidoc/pyinfra.version", "arguments", "cli", "compatibility", "connectors", "connectors/chroot", "connectors/docker", "connectors/dockerssh", "connectors/local", "connectors/ssh", "connectors/terraform", "connectors/vagrant", "contributing", "deploy-process", "examples", "examples/client_side_assets", "examples/data_multiple_environments", "examples/dynamic_execution_deploy", "examples/dynamic_inventories_data", "examples/groups_roles", "examples/secret_storage", "facts", "facts/apk", "facts/apt", "facts/brew", "facts/bsdinit", "facts/cargo", "facts/choco", "facts/deb", "facts/dnf", "facts/docker", "facts/files", "facts/flatpak", "facts/gem", "facts/git", "facts/gpg", "facts/hardware", "facts/iptables", "facts/launchd", "facts/lxd", "facts/mysql", "facts/npm", "facts/openrc", "facts/pacman", "facts/pip", "facts/pkg", "facts/pkgin", "facts/postgres", "facts/postgresql", "facts/rpm", "facts/runit", "facts/selinux", "facts/server", "facts/snap", "facts/systemd", "facts/sysvinit", "facts/upstart", "facts/vzctl", "facts/xbps", "facts/yum", "facts/zfs", "facts/zypper", "faq", "getting-started", "index", "install", "inventory-data", "operations", "operations/apk", "operations/apt", "operations/brew", "operations/bsdinit", "operations/cargo", "operations/choco", "operations/dnf", "operations/docker", "operations/files", "operations/flatpak", "operations/gem", "operations/git", "operations/iptables", "operations/launchd", "operations/lxd", "operations/mysql", "operations/npm", "operations/openrc", "operations/pacman", "operations/pip", "operations/pkg", "operations/pkgin", "operations/postgres", "operations/postgresql", "operations/puppet", "operations/python", "operations/runit", "operations/selinux", "operations/server", "operations/snap", "operations/ssh", "operations/systemd", "operations/sysvinit", "operations/upstart", "operations/vzctl", "operations/xbps", "operations/yum", "operations/zfs", "operations/zypper", "performance", "public/en/0.x/_static/fonts/source-serif-pro/README", "support", "using-operations"], "filenames": ["api/connectors.md", "api/deploys.md", "api/index.rst", "api/operations.md", "api/reference.rst", "apidoc/pyinfra.api.arguments.rst", "apidoc/pyinfra.api.arguments_typed.rst", "apidoc/pyinfra.api.command.rst", "apidoc/pyinfra.api.config.rst", "apidoc/pyinfra.api.connect.rst", "apidoc/pyinfra.api.connectors.rst", "apidoc/pyinfra.api.deploy.rst", "apidoc/pyinfra.api.exceptions.rst", "apidoc/pyinfra.api.facts.rst", "apidoc/pyinfra.api.host.rst", "apidoc/pyinfra.api.inventory.rst", "apidoc/pyinfra.api.operation.rst", "apidoc/pyinfra.api.operations.rst", "apidoc/pyinfra.api.state.rst", "apidoc/pyinfra.api.util.rst", "apidoc/pyinfra.context.rst", "apidoc/pyinfra.local.rst", "apidoc/pyinfra.progress.rst", "apidoc/pyinfra.version.rst", "arguments.rst", "cli.md", "compatibility.md", "connectors.rst", "connectors/chroot.rst", "connectors/docker.rst", "connectors/dockerssh.rst", "connectors/local.rst", "connectors/ssh.rst", "connectors/terraform.rst", "connectors/vagrant.rst", "contributing.md", "deploy-process.rst", "examples.rst", "examples/client_side_assets.md", "examples/data_multiple_environments.md", "examples/dynamic_execution_deploy.md", "examples/dynamic_inventories_data.md", "examples/groups_roles.md", "examples/secret_storage.md", "facts.rst", "facts/apk.rst", "facts/apt.rst", "facts/brew.rst", "facts/bsdinit.rst", "facts/cargo.rst", "facts/choco.rst", "facts/deb.rst", "facts/dnf.rst", "facts/docker.rst", "facts/files.rst", "facts/flatpak.rst", "facts/gem.rst", "facts/git.rst", "facts/gpg.rst", "facts/hardware.rst", "facts/iptables.rst", "facts/launchd.rst", "facts/lxd.rst", "facts/mysql.rst", "facts/npm.rst", "facts/openrc.rst", "facts/pacman.rst", "facts/pip.rst", "facts/pkg.rst", "facts/pkgin.rst", "facts/postgres.rst", "facts/postgresql.rst", "facts/rpm.rst", "facts/runit.rst", "facts/selinux.rst", "facts/server.rst", "facts/snap.rst", "facts/systemd.rst", "facts/sysvinit.rst", "facts/upstart.rst", "facts/vzctl.rst", "facts/xbps.rst", "facts/yum.rst", "facts/zfs.rst", "facts/zypper.rst", "faq.rst", "getting-started.rst", "index.rst", "install.md", "inventory-data.rst", "operations.rst", "operations/apk.rst", "operations/apt.rst", "operations/brew.rst", "operations/bsdinit.rst", "operations/cargo.rst", "operations/choco.rst", "operations/dnf.rst", "operations/docker.rst", "operations/files.rst", "operations/flatpak.rst", "operations/gem.rst", "operations/git.rst", "operations/iptables.rst", "operations/launchd.rst", "operations/lxd.rst", "operations/mysql.rst", "operations/npm.rst", "operations/openrc.rst", "operations/pacman.rst", "operations/pip.rst", "operations/pkg.rst", "operations/pkgin.rst", "operations/postgres.rst", "operations/postgresql.rst", "operations/puppet.rst", "operations/python.rst", "operations/runit.rst", "operations/selinux.rst", "operations/server.rst", "operations/snap.rst", "operations/ssh.rst", "operations/systemd.rst", "operations/sysvinit.rst", "operations/upstart.rst", "operations/vzctl.rst", "operations/xbps.rst", "operations/yum.rst", "operations/zfs.rst", "operations/zypper.rst", "performance.rst", "public/en/0.x/_static/fonts/source-serif-pro/README.md", "support.md", "using-operations.rst"], "titles": ["Writing Connectors", "Packaging Deploys", "Using the API", "Writing Facts & Operations", "API Reference", "pyinfra.api.arguments module", "pyinfra.api.arguments_typed module", "pyinfra.api.command module", "pyinfra.api.config module", "pyinfra.api.connect module", "pyinfra.api.connectors module", "pyinfra.api.deploy module", "pyinfra.api.exceptions module", "pyinfra.api.facts module", "pyinfra.api.host module", "pyinfra.api.inventory module", "pyinfra.api.operation module", "pyinfra.api.operations module", "pyinfra.api.state module", "pyinfra.api.util module", "pyinfra.context module", "pyinfra.local module", "pyinfra.progress module", "pyinfra.version module", "Global Arguments", "Using the CLI", "Compatibility", "Connectors Index", "@chroot
Connector", "@docker
Connector", "@dockerssh
Connector", "@local
Connector", "@ssh
Connector", "@terraform
Connector", "@vagrant
Connector", "Contributing", "How pyinfra Works", "Example Deploys", "Client Side Assets", "Data Across Multiple Environments", "Dynamic Execution during Deploy", "Dynamic Inventories & Data", "Groups & Roles", "Using Secrets in pyinfra", "Facts Index", "Apk Facts", "Apt Facts", "Brew Facts", "Bsdinit Facts", "Cargo Facts", "Choco Facts", "Deb Facts", "Dnf Facts", "Docker Facts", "Files Facts", "Flatpak Facts", "Gem Facts", "Git Facts", "Gpg Facts", "Hardware Facts", "Iptables Facts", "Launchd Facts", "Lxd Facts", "Mysql Facts", "Npm Facts", "Openrc Facts", "Pacman Facts", "Pip Facts", "Pkg Facts", "Pkgin Facts", "Postgres Facts", "Postgresql Facts", "Rpm Facts", "Runit Facts", "Selinux Facts", "Server Facts", "Snap Facts", "Systemd Facts", "Sysvinit Facts", "Upstart Facts", "Vzctl Facts", "Xbps Facts", "Yum Facts", "Zfs Facts", "Zypper Facts", "Frequently Asked Questions", "Getting Started", "pyinfra Documentation", "Installation", "Inventory & Data", "Operations Index", "Apk Operations", "Apt Operations", "Brew Operations", "Bsdinit Operations", "Cargo Operations", "Choco Operations", "Dnf Operations", "Docker Operations", "Files Operations", "Flatpak Operations", "Gem Operations", "Git Operations", "Iptables Operations", "Launchd Operations", "Lxd Operations", "Mysql Operations", "Npm Operations", "Openrc Operations", "Pacman Operations", "Pip Operations", "Pkg Operations", "Pkgin Operations", "Postgres Operations", "Postgresql Operations", "Puppet Operations", "Python Operations", "Runit Operations", "Selinux Operations", "Server Operations", "Snap Operations", "Ssh Operations", "Systemd Operations", "Sysvinit Operations", "Upstart Operations", "Vzctl Operations", "Xbps Operations", "Yum Operations", "Zfs Operations", "Zypper Operations", "Performance", "Source Serif Pro", "Help & Support", "Using Operations"], "terms": {"enabl": [0, 1, 3, 7, 11, 13, 25, 26, 27, 32, 36, 52, 65, 75, 77, 82, 84, 90, 94, 97, 98, 104, 108, 117, 119, 122, 124, 127, 129], "pyinfra": [0, 1, 2, 3, 4, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 44, 54, 70, 85, 88, 89, 90, 92, 97, 99, 102, 110, 113, 119, 121, 124, 127, 129, 130, 132, 133], "directli": [0, 14, 25, 125], "integr": [0, 27], "other": [0, 3, 13, 24, 25, 27, 32, 35, 40, 75, 89, 92, 113, 117, 119, 121, 123, 133], "tool": [0, 1, 25, 27, 35, 88, 119, 130, 131], "system": [0, 1, 25, 48, 53, 54, 75, 92, 97, 98, 99, 103, 119, 120, 127, 129, 131], "connecto": [], "ar": [0, 1, 3, 4, 12, 15, 16, 20, 24, 25, 26, 27, 32, 35, 36, 37, 38, 44, 48, 54, 77, 85, 86, 88, 89, 90, 92, 97, 99, 111, 119, 125, 126, 127, 129, 133], "written": [0, 3, 26, 36], "python": [0, 1, 2, 3, 21, 26, 35, 40, 41, 43, 86, 87, 88, 89, 90, 99, 110, 119, 133], "class": [0, 3, 5, 6, 7, 8, 13, 14, 15, 16, 18, 19, 20, 116], "inventoryconnector": 0, "baseconnector": [0, 14], "handles_execut": 0, "fals": [0, 3, 8, 14, 16, 17, 18, 19, 21, 24, 32, 36, 54, 70, 73, 77, 86, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 106, 107, 108, 109, 110, 112, 113, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 133], "staticmethod": 0, "def": [0, 1, 3, 26, 40, 41, 43, 116, 133], "make_names_data": 0, "_": [0, 3, 24], "none": [0, 3, 5, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 22, 54, 57, 58, 63, 64, 67, 70, 71, 73, 74, 75, 77, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129], "gener": [0, 3, 5, 6, 12, 13, 14, 16, 19, 25, 26, 27, 33, 34, 36, 40, 41, 44, 78, 92, 99, 119, 133], "target": [0, 3, 14, 15, 25, 27, 29, 32, 36, 41, 54, 74, 75, 86, 87, 89, 99, 103, 106, 113, 118, 119, 133], "yield": [0, 3], "tupl": [0, 5, 14, 15, 16, 18, 19, 47, 89, 99, 102], "name": [0, 1, 2, 3, 5, 10, 11, 13, 14, 15, 16, 18, 19, 24, 25, 28, 29, 30, 31, 33, 34, 36, 40, 41, 44, 52, 60, 61, 65, 66, 72, 73, 75, 76, 77, 78, 79, 82, 84, 86, 89, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 133], "data": [0, 3, 4, 5, 11, 12, 13, 14, 15, 25, 27, 33, 36, 37, 63, 70, 74, 86, 87, 119], "group": [0, 1, 12, 14, 15, 25, 29, 32, 36, 37, 39, 41, 44, 54, 66, 85, 86, 87, 90, 99, 102], "local": [0, 2, 4, 25, 26, 35, 38, 42, 44, 86, 87, 89, 90, 94, 99, 102, 110, 117, 121, 133], "A": [0, 1, 2, 4, 13, 26, 29, 30, 39, 42, 86, 87, 89, 133], "implement": [0, 21, 27, 116], "requir": [0, 1, 13, 26, 35, 36, 74, 86, 92, 99, 103, 106, 110, 113, 118, 119], "few": [0, 26, 89, 130], "more": [0, 1, 25, 26, 33, 58, 86, 99, 123, 130, 133], "method": [0, 3, 14, 26], "localconnector": 0, "true": [0, 1, 2, 3, 13, 14, 16, 18, 24, 25, 31, 32, 36, 40, 54, 70, 73, 77, 85, 86, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129, 133], "see": [0, 1, 2, 24, 36, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 89, 93, 99, 100, 101, 106, 113, 119, 120, 123, 132, 133], "abov": [0, 1, 25, 27, 36, 86, 88, 106, 113], "run_shell_command": [0, 14, 21, 40, 116], "self": [0, 3], "command": [0, 2, 4, 13, 14, 16, 21, 24, 26, 27, 30, 32, 36, 40, 44, 72, 87, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 104, 106, 108, 109, 110, 112, 113, 114, 115, 116, 117, 119, 122, 123, 124, 125, 126, 127, 129, 130, 133], "stringcommand": [0, 3, 7, 13], "print_output": [0, 18, 21], "bool": [0, 8, 13, 14, 16, 17, 18, 19, 21, 24, 32], "print_input": [0, 18, 21], "argument": [0, 4, 7, 12, 14, 19, 26, 32, 36, 44, 85, 86, 87, 90, 92, 97, 99, 103, 106, 110, 113, 116, 119, 120, 125, 127, 129], "unpack": [0, 7, 14], "connectorargu": [0, 5, 7], "commandoutput": [0, 14, 16, 19], "machin": [0, 25, 27, 30, 31, 77, 86, 89, 99, 119, 122, 133], "arg": [0, 6, 7, 11, 13, 14, 16, 18, 89, 99, 103, 116, 119], "actual": [0, 36, 66, 85, 99], "whether": [0, 3, 17, 24, 32, 65, 77, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129], "print": [0, 2, 25, 86], "output": [0, 12, 13, 16, 19, 21, 25, 26, 27, 33, 40, 48, 53, 75, 86, 89, 103, 119], "input": [0, 19, 25, 103], "global": [0, 3, 4, 5, 12, 13, 26, 36, 49, 64, 86, 87, 90, 99, 102, 106, 107, 110, 113, 129], "return": [0, 2, 3, 5, 7, 15, 18, 19, 24, 25, 41, 43, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 89, 97, 115, 127, 133], "indic": [0, 3, 18, 75, 77], "success": [0, 16, 24, 92], "stdout": [0, 2, 16, 40, 116, 133], "stderr": [0, 2, 16, 40, 116], "line": [0, 3, 21, 25, 40, 44, 54, 75, 90, 116, 119], "put_fil": [0, 14], "filename_or_io": [0, 3, 19], "remote_filenam": [0, 3, 121], "remote_temp_filenam": [0, 7], "ignor": [0, 21, 24, 99, 119], "upload": [0, 3, 14, 36, 38, 90, 99, 119], "file": [0, 14, 19, 21, 25, 26, 32, 36, 37, 38, 41, 42, 44, 52, 58, 72, 74, 75, 82, 86, 87, 90, 92, 97, 102, 106, 110, 111, 113, 117, 118, 119, 121, 122, 123, 124, 127, 129, 131], "io": [0, 7, 19, 99, 120], "object": [0, 2, 7, 8, 14, 15, 16, 18, 19, 20, 33, 99], "copi": [0, 8, 99, 110], "temporari": [0, 14, 75, 121], "directori": [0, 21, 24, 26, 44, 64, 75, 89, 90, 92, 102, 107, 110, 111, 117, 118, 119, 133], "locat": [0, 3, 75, 99, 110, 121], "succ": [], "failur": 0, "get_fil": [0, 14], "download": [0, 3, 14, 84, 88, 90, 92, 97, 127, 129], "our": [0, 86], "filenam": [0, 14, 19, 21, 32, 92, 97, 99, 106, 113, 119, 121, 127, 129], "oper": [1, 2, 4, 5, 11, 12, 13, 14, 19, 28, 29, 35, 37, 40, 42, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 89, 130], "execut": [1, 2, 3, 4, 7, 11, 14, 16, 17, 18, 20, 21, 26, 27, 28, 29, 31, 35, 36, 37, 44, 75, 85, 86, 87, 89, 91, 92, 93, 96, 97, 98, 99, 106, 109, 112, 113, 114, 115, 116, 117, 119, 121, 122, 125, 126, 127, 129, 130, 133], "low": [1, 14, 78], "level": [1, 14, 25, 74, 78, 119], "filesystem": [1, 44, 54, 75, 90, 99, 119, 125], "systemd": [1, 44, 86, 90, 99, 104, 119], "manag": [1, 18, 61, 73, 79, 83, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 119, 120, 122, 123, 124, 125, 126, 127, 128, 130], "etc": [1, 2, 24, 36, 48, 52, 72, 78, 82, 85, 86, 92, 94, 97, 99, 103, 117, 119, 122, 123, 124, 127, 129, 133], "i": [1, 2, 3, 4, 12, 13, 16, 18, 24, 25, 26, 27, 30, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 44, 54, 59, 73, 74, 75, 86, 87, 88, 89, 91, 92, 93, 96, 97, 98, 99, 101, 102, 105, 106, 109, 110, 111, 112, 113, 114, 115, 116, 117, 119, 121, 122, 123, 124, 125, 126, 127, 129, 130, 131, 133], "higher": 1, "abstract": [1, 13], "combin": [1, 4, 14, 25, 89], "one": [1, 3, 11, 16, 25, 27, 33, 36, 40, 54, 58, 85, 88, 97, 98, 99, 121, 127, 133], "togeth": [1, 92], "setup": [1, 4, 18, 36, 44, 133], "configur": [1, 8, 9, 14, 17, 27, 40, 41, 75, 87, 89, 102, 119, 133], "someth": [1, 86, 99, 119], "docker": [1, 25, 26, 30, 35, 44, 87, 89, 90, 92, 97, 99, 119, 127, 133], "certbot": 1, "nginx": [1, 24, 25, 31, 36, 98], "usual": [1, 42], "defin": [1, 2, 3, 4, 15, 25, 36, 40, 85, 86, 89, 90, 103, 124, 133], "user": [1, 2, 11, 12, 16, 20, 25, 26, 32, 33, 44, 54, 63, 74, 77, 85, 89, 90, 92, 96, 99, 102, 113, 117, 121, 122, 133], "us": [1, 4, 7, 13, 14, 15, 19, 20, 24, 26, 27, 31, 32, 33, 35, 37, 40, 41, 42, 44, 51, 54, 59, 74, 75, 77, 86, 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, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 131, 132], "It": [1, 3, 25, 41, 42, 88, 89, 133], "also": [1, 2, 3, 26, 33, 35, 41, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 89, 99, 106, 115, 133], "possibl": [1, 13, 25, 26, 36, 41, 88, 89, 133], "modul": [1, 3, 4, 41, 42, 44, 75, 88, 90, 103, 105, 106, 110, 113, 116, 119], "make": [1, 3, 19, 26, 36, 86, 89, 90, 99, 113, 133], "them": [1, 86, 90, 113], "reusabl": [1, 87], "shareabl": 1, "via": [1, 14, 25, 32, 35, 40, 44, 86, 89, 92, 97, 127, 129, 133], "pypi": 1, "These": [1, 20, 25, 26, 42, 86, 89, 92, 97, 103, 119, 127, 129], "can": [1, 2, 3, 25, 26, 27, 29, 30, 32, 33, 36, 40, 41, 42, 43, 44, 48, 85, 86, 87, 89, 91, 92, 93, 95, 96, 97, 99, 101, 102, 103, 107, 109, 110, 113, 117, 119, 127, 129, 132, 133], "import": [1, 2, 20, 26, 36, 38, 40, 41, 42, 43, 44, 85, 86, 89, 99, 106, 113, 133], "your": [0, 1, 2, 3, 25, 35, 38, 87, 99, 120, 133], "own": [1, 2, 3, 4, 24, 87, 99, 111, 113, 133], "code": [1, 2, 20, 24, 36, 41, 78, 115, 116, 119, 130, 133], "utilis": 1, "essenti": [1, 35], "two": [1, 11, 25, 32, 39, 54, 86, 89, 99, 111, 121, 133], "chang": [1, 2, 3, 12, 16, 24, 26, 31, 35, 40, 86, 89, 90, 99, 102, 106, 113, 115, 118, 119, 122, 125, 131], "from": [1, 2, 5, 11, 14, 15, 16, 19, 24, 25, 27, 29, 33, 36, 38, 40, 41, 42, 43, 44, 54, 85, 86, 87, 89, 92, 97, 98, 99, 102, 103, 106, 113, 118, 119, 121, 127, 129, 133], "wrap": [1, 11, 14, 99], "everyth": [1, 26], "function": [1, 3, 5, 7, 11, 16, 24, 26, 35, 40, 116, 131, 133], "decor": [1, 11, 16, 26], "api": [1, 3, 21, 26, 35, 40, 41, 87], "apt": [1, 25, 31, 36, 40, 44, 51, 77, 85, 86, 87, 89, 90, 133], "instal": [1, 25, 31, 35, 36, 38, 40, 42, 44, 45, 46, 47, 49, 50, 51, 52, 55, 56, 59, 64, 66, 67, 68, 69, 72, 74, 75, 76, 81, 82, 84, 86, 90, 91, 92, 93, 95, 97, 100, 101, 107, 109, 110, 111, 112, 119, 120, 126, 127, 129, 133], "mariadb": 1, "install_mariadb": 1, "server": [1, 2, 3, 9, 11, 13, 16, 17, 24, 25, 26, 27, 35, 36, 40, 41, 42, 44, 59, 85, 86, 87, 89, 90, 92, 94, 99, 106, 111, 113, 115, 118, 121, 123, 133], "thi": [1, 2, 3, 4, 13, 14, 15, 16, 19, 24, 25, 26, 29, 30, 31, 32, 35, 38, 39, 40, 41, 42, 44, 59, 74, 75, 85, 86, 89, 91, 92, 93, 94, 96, 97, 98, 99, 102, 103, 104, 106, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 131, 132, 133], "could": [1, 3], "like": [1, 3, 25, 26, 33, 36, 41, 44, 86, 89, 91, 92, 93, 94, 95, 96, 99, 101, 104, 107, 108, 109, 110, 117, 122, 123, 124, 129, 130, 133], "so": [1, 3, 13, 15, 25, 26, 33, 36, 44, 89, 111, 118, 119, 124, 133], "packaged_deploi": 1, "basic": [1, 37, 86, 87], "simpli": [1, 3, 38, 92, 124, 133], "prometheu": 1, "complex": [1, 42, 99, 133], "contain": [1, 4, 9, 20, 25, 27, 29, 30, 32, 39, 53, 62, 75, 80, 86, 89, 90, 99, 119, 125, 129], "multipl": [1, 14, 25, 29, 30, 32, 34, 36, 37, 42, 44, 89, 93, 99, 100, 102, 119, 120], "instanc": [1, 7, 25, 75, 86], "variou": 1, "export": [1, 99], "servic": [1, 36, 40, 61, 65, 73, 77, 79, 86, 90, 98, 99, 118, 133], "accept": [1, 3, 32, 90], "same": [1, 15, 32, 42, 48, 74, 89, 92, 98, 99, 102, 120], "thei": [1, 2, 3, 36, 77, 99, 117, 133], "appli": [1, 24, 86, 99, 103, 113, 115, 125], "everi": [1, 25, 36, 78, 119], "call": [1, 3, 5, 11, 13, 16, 26, 36, 40, 44, 90, 99, 133], "within": [1, 18, 21, 26, 28, 42, 44, 86, 116, 119, 133], "take": [1, 3, 7, 11, 16, 35, 86, 106, 113, 119], "sudo": [1, 2, 8, 16, 24, 25, 86, 99, 116, 121, 133], "set": [1, 2, 3, 13, 16, 18, 19, 20, 24, 26, 29, 32, 37, 54, 63, 73, 74, 75, 85, 87, 89, 90, 92, 97, 98, 99, 102, 106, 111, 117, 118, 119, 121, 124, 127, 128, 129, 131, 133], "default": [1, 3, 5, 8, 13, 14, 15, 24, 25, 29, 32, 35, 36, 39, 65, 85, 89, 92, 99, 102, 106, 107, 108, 111, 119, 121, 129, 133], "ani": [1, 2, 4, 5, 11, 13, 14, 15, 16, 19, 24, 25, 26, 27, 32, 34, 35, 36, 38, 39, 40, 75, 86, 87, 88, 89, 90, 92, 97, 99, 102, 106, 117, 119, 127, 129], "provid": [1, 2, 3, 15, 20, 25, 29, 30, 36, 43, 54, 66, 72, 89, 92, 98, 99, 118, 119, 131, 133], "host": [1, 2, 3, 4, 5, 7, 11, 12, 13, 15, 16, 17, 18, 19, 24, 25, 27, 29, 31, 32, 33, 34, 38, 40, 41, 42, 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, 86, 87, 92, 97, 99, 102, 106, 113, 116, 119, 121, 125, 127], "preced": 1, "sensibl": 1, "option": [1, 8, 16, 18, 21, 35, 63, 73, 75, 88, 92, 97, 98, 99, 106, 113, 117, 119, 120, 127, 129], "end": [1, 20, 36, 40, 54, 99], "customis": 1, "modifi": [1, 27, 29, 119, 128], "mariadb_vers": 1, "1": [1, 7, 18, 19, 25, 32, 33, 35, 52, 59, 72, 78, 82, 84, 89, 97, 99, 119, 123, 127, 129, 133], "2": [1, 18, 25, 32, 33, 59, 75, 89, 99, 102, 115, 123], "3": [1, 2, 18, 29, 30, 33, 35, 59, 88, 89, 123], "data_default": [1, 11], "f": [1, 3, 25, 75, 92, 93, 97, 116, 119, 127, 133], "In": [0, 2, 24, 25, 26, 36, 40, 86, 89, 131], "addit": [2, 24, 26, 35, 85, 89, 92, 97, 110, 127, 128, 129, 131], "cli": [2, 11, 20, 26, 86, 87, 88, 89, 106, 113], "full": [25, 26, 75, 86, 89, 92, 133], "As": [2, 25, 36, 41], "v1": [26, 41, 102], "consid": [2, 24, 132], "mostli": 2, "stabl": [2, 55, 76, 97, 120, 127], "an": [2, 3, 4, 9, 11, 12, 16, 18, 19, 25, 29, 32, 34, 35, 36, 39, 43, 44, 54, 55, 76, 86, 99, 102, 105, 117, 118, 133], "exampl": [4, 7, 24, 27, 31, 33, 36, 40, 41, 42, 44, 86, 87, 89, 91, 92, 93, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 126, 127, 128, 129], "how": [2, 3, 27, 29, 32, 35, 44, 99, 110, 119], "embed": [], "below": [25, 27, 36, 88, 99, 132, 133], "refer": [2, 35, 89, 131], "build": [3, 29, 35, 38, 88, 119, 131, 133], "block": [3, 44, 59, 90, 103], "document": [3, 26, 37, 85, 133], "describ": [3, 25, 26, 36, 39, 86, 90], "you": [0, 2, 3, 26, 28, 29, 30, 32, 33, 35, 36, 37, 39, 40, 44, 85, 86, 87, 88, 89, 99, 116, 119, 132, 133], "extend": 3, "": [0, 2, 3, 4, 13, 14, 15, 16, 19, 21, 25, 32, 35, 36, 41, 54, 63, 86, 89, 98, 99, 106, 111, 113, 119, 120, 122, 126, 130, 133], "pass": [3, 11, 12, 16, 25, 26, 29, 32, 42, 44, 89, 92, 94, 99, 104, 108, 110, 116, 117, 119, 122, 124, 133], "current": [3, 4, 5, 13, 18, 20, 26, 34, 35, 75, 89, 99, 102, 119, 133], "deploi": [3, 4, 5, 8, 12, 13, 14, 16, 17, 18, 20, 24, 25, 26, 36, 38, 39, 41, 42, 44, 89, 92, 97, 98, 99, 116, 119, 127, 129, 133], "state": [2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 21, 36, 40, 44, 59, 73, 75, 90, 94, 99, 104, 108, 117, 118, 119, 122, 123, 124, 127, 130, 133], "read": [3, 9, 14, 34, 36, 44, 106, 113, 119, 122], "compar": 3, "except": [3, 4, 15, 19, 24, 36, 116, 133], "those": [3, 42], "start": [2, 3, 25, 29, 35, 37, 54, 87, 90, 98, 99, 117, 119, 123, 124, 130, 133], "which": [3, 4, 13, 15, 25, 26, 36, 37, 44, 89, 99, 102, 110, 111, 118, 119, 123, 133], "reserv": [3, 26], "intern": [3, 16, 41], "my_oper": 3, "three": [3, 27, 36, 130], "type": [3, 5, 12, 13, 14, 19, 24, 29, 32, 46, 74, 75, 84, 118, 119, 129], "shell": [2, 3, 7, 8, 14, 21, 26, 38, 40, 42, 75, 85, 86, 90, 99, 133], "repres": [3, 14, 15, 20, 98, 133], "string": [3, 7, 19, 21, 24, 51, 74, 92, 99, 119], "OR": [3, 133], "echo": [2, 3, 25, 40, 75, 86, 116, 121, 133], "fileuploadcommand": [3, 7], "filedownloadcommand": [3, 7], "functioncommand": [3, 7], "args_list": 3, "kwargs_dict": 3, "addition": 3, "overrid": [3, 15, 32, 89, 119, 124], "most": [3, 26, 36, 87, 133], "_sudo": [3, 24, 25, 31, 85, 86, 87, 89, 99, 133], "syntax": [3, 86, 99], "path": [2, 3, 19, 25, 36, 44, 54, 74, 85, 88, 99, 102, 110, 115, 118, 119, 133], "some": [2, 3, 25, 26, 40, 41, 86, 92, 99, 132, 133], "simplifi": 3, "version": [2, 3, 4, 8, 35, 45, 47, 49, 50, 51, 55, 56, 64, 66, 67, 68, 69, 72, 75, 76, 81, 91, 92, 93, 95, 96, 97, 101, 103, 107, 109, 110, 111, 112, 127, 129, 133], "creat": [3, 4, 24, 27, 29, 35, 89, 90, 97, 98, 99, 102, 110, 113, 118, 119, 121, 123, 127, 128, 129, 133], "remov": [3, 26, 29, 36, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 109, 110, 111, 112, 113, 117, 118, 119, 120, 121, 126, 127, 129], "remot": [3, 13, 16, 25, 30, 38, 40, 44, 54, 75, 86, 92, 97, 99, 102, 119, 121, 127, 129], "base": [3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 29, 30, 35, 36, 99, 105, 131, 133], "present": [3, 14, 36, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 109, 110, 111, 112, 113, 118, 119, 120, 121, 126, 127, 128, 129], "kwarg": [3, 5, 6, 7, 8, 11, 13, 14, 16, 18, 19, 116], "should": [3, 14, 26, 35, 37, 86, 87, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 133], "exist": [3, 19, 26, 29, 44, 54, 63, 74, 92, 97, 98, 99, 102, 103, 105, 110, 113, 117, 118, 119, 121, 124, 127, 128, 129, 133], "info": [3, 14, 38, 39, 53, 75, 78, 133], "get_fact": [2, 3, 13, 14, 36, 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, 92, 97, 127, 133], "Not": 3, "rais": [3, 12, 116, 133], "operationerror": [3, 12], "0": [3, 7, 8, 18, 19, 24, 25, 32, 40, 41, 55, 59, 72, 75, 76, 78, 84, 92, 99, 102, 115, 119, 120, 123, 133], "format": [3, 7, 40, 53, 74, 92, 98, 99], "doesn": [3, 54, 99, 133], "t": [3, 5, 13, 14, 36, 54, 86, 92, 97, 99, 111, 117, 119, 127, 129, 133], "we": [2, 3, 4, 25, 36, 40, 41, 89, 99, 115], "want": [3, 27, 44, 90, 99], "touch": [3, 92, 99], "don": [3, 92, 99, 119], "elif": [3, 41], "rm": 3, "either": [3, 19, 25, 29, 99, 106, 113, 115, 133], "process": [3, 13], "The": [3, 4, 8, 11, 13, 16, 20, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 54, 85, 86, 87, 89, 99, 103, 105, 113, 116, 119, 130], "handler": [3, 5, 18], "anyth": [3, 25, 86], "normal": [3, 11, 89], "dict": [3, 5, 13, 14, 18, 19, 32, 45, 47, 49, 50, 51, 56, 59, 60, 61, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 75, 78, 79, 80, 81, 99], "mai": [3, 44, 88, 89, 99, 118], "valu": [0, 3, 5, 12, 15, 18, 19, 25, 33, 36, 43, 44, 75, 89, 98, 99, 102, 118, 119], "error": [3, 12, 18, 21, 24], "occur": 3, "dure": [3, 12, 24, 37, 119, 133], "collect": [3, 13, 15, 25, 40, 86, 133], "requires_command": [3, 13], "variabl": [3, 5, 20, 24, 33, 43, 75, 85, 89, 99, 111, 119, 133], "specifi": [3, 24, 32, 33, 54, 72, 74, 91, 92, 93, 95, 96, 97, 99, 101, 102, 105, 107, 110, 112, 117, 118, 119, 127, 129], "must": [3, 25, 26, 29, 30, 33, 74, 92, 119], "avail": [3, 24, 27, 59, 75, 87, 89, 91, 111, 117, 130, 133], "If": [3, 24, 37, 44, 54, 74, 85, 87, 88, 89, 92, 97, 99, 119, 127, 129, 133], "empti": [3, 15, 54, 74, 92], "For": [3, 25, 33, 41, 44, 89, 99, 117, 123, 131, 133], "htop": [3, 36], "boolean": [3, 17, 18, 74, 75, 77, 90], "declar": 3, "attribut": [3, 13, 14, 133], "factbas": [3, 13, 14], "swapen": 3, "swapon": 3, "show": [3, 26, 99, 119], "len": 3, "have": [3, 21, 24, 36, 39, 99, 102, 103, 106, 117, 119, 121], "is_swap_en": 3, "found": [2, 3, 44, 54, 58, 78, 99], "given": [3, 19, 64, 65, 75, 89, 99, 118, 119], "findfil": [3, 44, 99], "point": [0, 3, 99], "recurs": [3, 54, 99, 102, 128], "find": [3, 54, 132], "list_of_fil": 3, "somewher": 3, "raw": [3, 75, 99, 119], "rawcommandoutput": 3, "n": [3, 25, 116], "join": [3, 116], "re": [3, 11, 86, 87, 99], "command_output": 3, "design": [4, 25, 40, 131], "follow": [0, 4, 25, 26, 29, 32, 33, 89, 92, 97, 111, 127, 133], "go": [4, 129], "consist": [4, 16], "inventori": [2, 4, 9, 12, 14, 18, 27, 31, 32, 34, 36, 37, 39, 42, 85, 86, 87, 90, 121], "plu": [4, 25], "config": [2, 4, 5, 18, 32, 36, 38, 90, 99, 119, 124], "flag": [4, 7, 18, 26, 44, 89, 90, 119], "now": [4, 25, 26, 86], "add_op": [2, 4, 16], "add_deploi": [4, 11], "done": [4, 89, 99], "run_op": [2, 4, 17], "best": [4, 37, 97, 127], "action": [4, 133], "main": [2, 4, 46, 84, 92, 102, 133], "py": [2, 4, 11, 21, 25, 31, 32, 36, 38, 39, 41, 42, 43, 44, 86, 89, 106, 113, 133], "arguments_typ": 4, "connect": [2, 4, 12, 14, 18, 24, 25, 27, 32, 36, 38, 86, 106, 113, 118, 121, 122], "connector": [4, 12, 14, 25, 26, 35, 87, 89, 99], "fact": [2, 4, 12, 14, 24, 25, 26, 35, 85, 87, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129], "util": [4, 14], "context": [4, 5, 13, 19, 74, 85, 116, 118, 133], "progress": 4, "allargu": [5, 14, 16, 18], "metaargu": 5, "executionargu": 5, "str": [5, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 21, 24, 29, 32], "argumentmeta": 5, "descript": [5, 14, 19, 24, 29, 32, 75, 97, 127, 129], "callabl": [5, 7, 11, 13, 14, 16, 18, 19, 24], "typeddict": 5, "generate_env": 5, "pop_global_argu": 5, "keys_to_check": 5, "list": [5, 13, 14, 15, 16, 18, 19, 21, 24, 26, 27, 33, 41, 42, 46, 47, 52, 54, 55, 59, 60, 62, 66, 72, 75, 76, 82, 84, 86, 87, 89, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 106, 107, 109, 110, 111, 112, 116, 119, 120, 124, 126, 127, 129, 132, 133], "pop": 5, "keyword": [5, 24, 32, 99, 116], "prefer": 5, "order": [0, 5, 15, 86, 87], "direct": [5, 25, 92], "being": [5, 99], "pyinfraoper": [6, 16], "p": [6, 16, 99], "protocol": [6, 74, 103, 118], "src": [7, 58, 89, 92, 93, 97, 99, 102, 106, 113, 119, 127, 129, 133], "dest": [7, 89, 99, 102, 106, 113, 133], "pyinfracommand": [7, 18], "connector_argu": 7, "func_kwarg": 7, "maskstr": 7, "quotestr": 7, "obj": [7, 9, 11, 16, 17, 19], "rsynccommand": 7, "bit": [7, 19, 99], "_separ": 7, "get_masked_valu": 7, "get_raw_valu": 7, "make_formatted_string_command": 7, "helper": 7, "script": [7, 25, 35, 48, 78, 90, 123], "split": [7, 21], "shlex": 7, "each": [2, 7, 24, 27, 36, 44, 63, 86, 89, 119], "curl_command": 7, "curl": [7, 99], "sslf": 7, "o": [2, 7, 36, 43, 44, 52, 82, 94, 111, 119, 131, 133], "configdefault": 8, "get_current_st": 8, "lock_current_st": 8, "reset_locked_st": 8, "set_current_st": 8, "config_st": 8, "connect_timeout": 8, "int": [8, 14, 15, 16, 18, 19, 24, 32], "10": [8, 26, 59, 88, 99, 105, 117, 119], "default_temp_dir": 8, "tmp": [8, 99, 106, 113, 119, 121], "doa": [8, 24], "doas_us": 8, "fail_perc": [8, 18], "ignore_error": [8, 19, 21], "parallel": [8, 9, 24, 25, 29, 30, 36], "preserve_sudo_env": 8, "preserve_su_env": 8, "require_packag": [8, 133], "require_pyinfra_vers": [8, 133], "sh": [8, 24, 25, 35, 93], "sudo_password": 8, "sudo_us": [8, 99, 113], "su_shel": 8, "su_us": 8, "temp_dir": 8, "use_sudo_login": [8, 115], "use_su_login": [8, 115], "check_pyinfra_vers": 8, "check_require_packag": 8, "requirements_config": 8, "connect_al": [2, 9], "all": [2, 5, 9, 11, 15, 16, 17, 24, 26, 27, 32, 34, 35, 36, 39, 41, 42, 43, 53, 58, 73, 87, 89, 90, 91, 92, 93, 97, 98, 99, 106, 109, 112, 113, 119, 126, 127, 129, 131, 133], "write": [9, 27, 35, 44, 87, 90, 99, 118, 119, 133], "paramet": [9, 11, 15, 16, 17, 21], "disconnect_al": 9, "get_all_connector": 10, "get_execution_connector": 10, "come": [11, 26, 119], "form": [11, 99], "disk": [11, 119, 128], "eg": [11, 13, 25, 51, 89, 92, 99, 103, 121, 123, 125], "latter": 11, "usabl": 11, "across": [11, 17, 37, 130, 133], "extens": [11, 99, 103], "creation": [11, 102, 116], "openstack": 11, "deploy_func": 11, "prepar": [11, 16, 18, 36, 99], "add": [0, 11, 16, 25, 26, 36, 88, 91, 92, 93, 96, 97, 99, 101, 102, 103, 105, 106, 109, 110, 112, 113, 118, 119, 121, 127, 129], "ie": [11, 13, 16, 32, 35, 89, 97, 127, 129], "pyinfra_": 11, "packag": [11, 31, 35, 36, 40, 43, 44, 45, 47, 49, 50, 51, 55, 56, 64, 66, 67, 68, 69, 72, 76, 81, 85, 86, 87, 88, 89, 133], "insid": [11, 41, 110, 133], "wide": 11, "argumenttypeerror": 12, "pyinfraerror": 12, "typeerror": 12, "when": [12, 14, 21, 24, 25, 26, 85, 86, 89, 92, 97, 99, 102, 103, 119, 123, 127, 129, 133], "invalid": 12, "connecterror": 12, "fail": [12, 18, 36, 73, 88], "connectordatatypeerror": 12, "ha": [12, 24, 26, 46, 74, 75, 96, 119, 132, 133], "deployerror": 12, "sub": [12, 98], "facterror": 12, "gather": [12, 87], "stage": [12, 18, 36, 39], "unabl": 12, "facttypeerror": 12, "factvalueerror": 12, "valueerror": 12, "inventoryerror": 12, "relat": [12, 75, 118], "noconnectorerror": 12, "request": [12, 35, 40, 41, 99, 132], "miss": 12, "nogrouperror": [12, 15], "keyerror": 12, "nohosterror": [12, 15], "operationtypeerror": 12, "operationvalueerror": 12, "diff": [13, 16, 86, 87], "desir": [13, 36, 86, 118], "produc": 13, "final": [2, 13, 26], "note": [2, 13, 25, 30, 74, 92, 96, 97, 99, 101, 105, 111, 115, 118, 119, 126, 127, 130], "doe": [13, 54, 74, 99, 105, 110, 118, 119], "out": [13, 24, 25, 27, 36, 44, 90, 99, 133], "give": [13, 110, 119], "me": 13, "ip": [13, 33, 80, 98, 99, 103], "b": 13, "while": [13, 78, 130], "static": [13, 15, 18], "iter": [13, 14, 15, 18, 24, 119], "process_pipelin": 13, "shell_execut": 13, "shortfactbas": [13, 14], "process_data": 13, "cl": 13, "ensure_host": 13, "apply_failed_host": 13, "get_host_fact": 13, "get_short_fact": 13, "short_fact": 13, "connector_cl": 14, "ssh": [14, 21, 25, 33, 35, 77, 86, 89, 90, 99, 103, 119], "sshconnector": 14, "thin": 14, "link": [14, 44, 90, 102, 117, 119, 123], "up": [2, 14, 38, 59, 86, 98, 99, 119, 121], "check_can_rsync": 14, "reason": [14, 36, 130], "show_error": 14, "raise_except": [14, 90], "connector_data": 14, "current_deploy_data": 14, "current_deploy_kwarg": 14, "current_deploy_nam": 14, "current_op_deploy_data": 14, "current_op_global_argu": 14, "current_op_hash": 14, "in_deploi": 14, "instead": [14, 16, 24, 92, 99, 110, 119, 133], "disconnect": [14, 18, 36], "executing_op_hash": 14, "get_deploy_data": 14, "name_or_cl": 14, "get": [2, 14, 15, 19, 20, 24, 25, 27, 35, 36, 37, 41, 44, 59, 87, 89, 90, 92, 97, 127, 133], "cach": [14, 19, 92], "get_temp_filenam": 14, "hash_kei": 14, "hash_filenam": 14, "properti": [14, 16, 19, 92, 128], "group_data": [14, 39, 41, 43, 89], "host_data": 14, "in_callback_op": 14, "in_op": 14, "init": [14, 18, 25, 48, 78, 86, 94, 108, 119, 123, 124], "log": [14, 25, 103, 133], "messag": [14, 99, 116], "log_func": 14, "bound": [14, 32], "logger": [14, 38, 133], "warn": [14, 26, 99], "log_styl": 14, "loop": 14, "loop_posit": 14, "nested_executing_op_hash": 14, "noop": [14, 25], "print_prefix": 14, "rsync": [14, 90], "style_print_prefix": 14, "condit": [14, 36, 133], "hostdata": 14, "attrdata": 14, "search": [14, 117], "kei": [0, 14, 20, 24, 29, 32, 44, 46, 52, 58, 75, 82, 89, 90, 98, 102, 119, 121, 129], "override_data": [14, 15], "extract_callable_data": 14, "union": [14, 24], "names_data": 15, "store": [15, 89, 99], "access": [2, 15, 26, 41, 89, 110, 120, 133], "dictionari": [15, 19, 24, 33, 59, 75, 77, 99, 110], "ssh_": 15, "deprec": [15, 26, 59, 75, 92], "winrm_": 15, "map": [15, 24, 74, 77, 98, 118, 125], "get_data": 15, "attach": [15, 89, 98, 119], "get_group": 15, "belong": [15, 66, 103], "get_group_data": 15, "singl": [15, 25, 32, 36, 53, 73, 99], "get_groups_data": 15, "aggreg": 15, "var": [15, 25, 40, 73, 92, 99, 117, 133], "twice": 15, "last": 15, "hold": [15, 111], "get_host": [15, 133], "get_host_data": 15, "hostnam": [15, 25, 32, 33, 41, 44, 63, 85, 87, 89, 90, 106, 113, 121, 125, 133], "get_override_data": 15, "iter_activated_host": 15, "over": [15, 25, 32, 36, 86, 99, 121], "activ": [15, 18, 32, 77, 89, 119], "iter_active_host": 15, "len_activated_host": 15, "number": [15, 24, 32, 59, 74, 85, 119, 133], "len_active_host": 15, "make_hosts_and_group": 15, "extract_name_data": 15, "core": [16, 76, 78], "wrapper": 16, "intercept": 16, "against": [16, 25, 26, 29, 86, 87, 89, 99, 106, 113], "run": [2, 16, 17, 24, 25, 26, 27, 29, 30, 34, 35, 36, 38, 40, 42, 62, 73, 80, 86, 91, 92, 93, 94, 97, 98, 99, 104, 108, 109, 112, 115, 116, 117, 118, 119, 121, 122, 123, 124, 126, 127, 129, 133], "later": 16, "__main__": 16, "operationmeta": [2, 16, 18], "hash": [16, 19, 54, 99], "is_chang": 16, "did_chang": [16, 36, 133], "did_error": 16, "did_not_chang": 16, "did_succe": 16, "is_complet": 16, "set_complet": 16, "combined_output": 16, "stderr_lin": 16, "stdout_lin": 16, "op_func": 16, "attach_arg": 16, "op_meta": [16, 19], "ensure_shared_op_meta": 16, "op_hash": [16, 17, 18], "op_ord": [16, 18], "global_argu": [16, 18], "execute_immedi": 16, "generate_operation_nam": 16, "func": [16, 19], "get_operation_name_from_func": 16, "is_idempot": 16, "idempotent_notic": 16, "is_deprec": 16, "deprecated_for": 16, "_set_in_op": 16, "simpl": [16, 25, 36, 86, 99, 119, 130], "turn": 16, "represent": 16, "su": [16, 24, 109], "_user": 16, "env": [16, 25, 39, 110], "solve_operation_consist": 16, "run_host_op": 17, "serial": 17, "no_wait": 17, "manner": 17, "wait": [17, 90, 117], "between": [17, 26, 32, 54, 99, 119, 133], "basestatecallback": 18, "host_before_connect": 18, "host_connect": 18, "host_connect_error": 18, "host_disconnect": 18, "operation_end": 18, "operation_host_error": 18, "operation_host_start": 18, "operation_host_success": 18, "operation_start": 18, "check_for_chang": 18, "activate_host": 18, "add_callback_handl": 18, "current_deploy_filenam": 18, "current_exec_filenam": 18, "current_op_file_numb": 18, "current_stag": 18, "statestag": 18, "cwd": [18, 21], "fail_host": 18, "hosts_to_fail": 18, "activated_count": 18, "get_meta_for_host": 18, "statehostmeta": 18, "get_op_data_for_host": 18, "stateoperationhostdata": 18, "get_op_meta": 18, "stateoperationmeta": [18, 19], "get_op_ord": 18, "get_results_for_host": 18, "statehostresult": 18, "get_warning_count": 18, "increment_warning_count": 18, "initial_limit": 18, "initialis": 18, "is_execut": 18, "is_host_in_limit": 18, "limit": [18, 42, 75, 103, 113, 119], "pool": [18, 44], "print_fact_info": 18, "print_fact_input": 18, "print_fact_output": 18, "print_noop_info": 18, "set_op_data_for_host": 18, "op_data": 18, "set_stag": 18, "should_check_for_chang": 18, "should_raise_failed_host": 18, "stage_warn": 18, "trigger_callback": 18, "method_nam": 18, "op": [2, 18], "ops_chang": 18, "ops_no_chang": 18, "error_op": 18, "ignored_error_op": 18, "partial_op": 18, "success_op": 18, "command_gener": 18, "operation_meta": 18, "parent_op_hash": 18, "intenum": 18, "enumer": 18, "5": [18, 26, 32, 33, 63, 123], "4": [18, 33, 76, 92, 103, 120, 123], "format_except": 19, "e": [19, 35, 87, 98, 102, 119, 128, 133], "get_call_loc": 19, "frame_offset": 19, "get_caller_frameinfo": 19, "get_file_io": 19, "mode": [19, 20, 26, 35, 54, 75, 77, 85, 99, 133], "rb": 19, "processor": 19, "open": [19, 106, 119, 131], "close": 19, "leav": [19, 29, 92], "alon": 19, "cache_kei": 19, "get_file_path": 19, "get_file_sha1": 19, "calcul": 19, "sha1": [19, 54, 99], "buffer": [19, 24], "handl": [19, 86, 99, 103, 119], "larger": 19, "get_kwargs_str": 19, "get_operation_order_from_stack": 19, "get_path_permissions_mod": 19, "pathnam": 19, "permiss": [19, 85, 96, 99], "integ": [19, 99], "get_templ": 19, "jinja2": [19, 99], "templat": [19, 90, 113, 119, 125, 133], "log_error_or_warn": 19, "continue_on_error": 19, "log_host_command_error": 19, "timeout": [19, 24, 117], "log_operation_start": 19, "op_typ": 19, "prefix": [19, 24, 74, 89, 103], "make_hash": 19, "arbitrari": [19, 25, 106, 113], "nest": 19, "id": [19, 29, 40, 46, 55, 58, 75, 76, 92, 97, 105, 127], "memoiz": 19, "print_host_combined_output": 19, "raise_if_bad_typ": 19, "type_": 19, "message_prefix": 19, "sha1_hash": 19, "try_int": 19, "contextobject": 20, "contextmanag": 20, "specif": [20, 24, 25, 26, 34, 60, 98, 102, 106, 119, 122, 133], "throughout": 20, "alwai": [20, 36, 86, 91, 92, 93, 96, 97, 98, 99, 106, 109, 110, 112, 113, 114, 115, 116, 117, 119, 121, 122, 125, 126, 127, 129, 133], "context_cl": 20, "isset": 20, "reset": 20, "set_bas": 20, "localcontextobject": 20, "init_base_class": 20, "includ": [21, 33, 37, 42], "splitlin": 21, "subprocess": [2, 21, 25, 31], "progress_spinn": 22, "item": [22, 75, 119], "prefix_messag": 22, "its": [24, 25, 35, 46, 124, 128], "With": 24, "avoid": 24, "clash": 24, "_sudo_us": [24, 85, 89, 133], "non": [24, 99], "root": [24, 28, 74, 75, 99, 110, 118], "_use_sudo_login": [24, 85], "login": [24, 85, 113], "_sudo_password": [24, 26], "password": [24, 32, 43, 75, 89, 99, 106, 113, 119], "need": [0, 2, 24, 25, 26, 32, 38, 40, 85, 86, 88, 92, 117, 118, 119, 132, 133], "prompt": 24, "_preserve_sudo_env": [24, 85], "preserv": [24, 85], "environ": [24, 37, 43, 75, 85, 87, 98, 99, 110, 111], "_su_us": 24, "_use_su_login": 24, "_preserve_su_env": 24, "_su_shel": 24, "_su": 24, "onli": [24, 25, 26, 31, 36, 44, 73, 75, 86, 89, 97, 99, 103, 111, 119, 123, 127, 129, 133], "under": [24, 89, 99], "linux": [24, 26, 31, 35, 48, 75, 86, 92, 97, 99, 109, 119, 123, 127, 131, 133], "nologin": 24, "similar": 24, "_doa": 24, "_doas_us": 24, "my": [24, 25, 32, 34, 40, 86, 125], "secret": [24, 37, 58, 99], "_shell_execut": [24, 133], "_chdir": 24, "switch": [24, 133], "befor": [24, 26, 36, 38, 40, 91, 92, 93, 97, 99, 102, 109, 112, 118, 119, 121, 126, 127, 129], "_env": [24, 87], "_success_exit_cod": 24, "exit": [24, 25, 78], "_timeout": 24, "_get_pti": 24, "pseudotti": 24, "_stdin": 24, "send": [24, 131], "stdin": 24, "bootstrap": [24, 133], "param": 24, "openssl": 24, "dhparam": 24, "pem": 24, "4096": [24, 46, 58], "ssl": [24, 99], "cert": 24, "_ignore_error": 24, "_continue_on_error": 24, "continu": [24, 35, 99], "after": [2, 24, 25, 99, 102, 106, 117], "_if": [24, 36, 133], "_parallel": 24, "batch": 24, "_run_onc": 24, "onc": [24, 36, 38], "first": [24, 26, 36, 40, 86, 89, 99, 117], "_serial": [24, 87], "rather": [24, 102, 110, 133], "than": [24, 98, 102, 110, 133], "extrem": [25, 87], "power": [25, 87], "page": [25, 26, 27, 86, 87, 99, 132], "usag": [25, 35], "net": [25, 32, 41, 86, 89, 121, 125], "comma": 25, "separ": [25, 42, 89, 99], "deploy_web": 25, "deploy_db": 25, "home": [2, 25, 44, 99, 102, 119, 121, 128, 133], "exec": [25, 86], "hello": [25, 46, 58, 86, 116, 119, 120], "world": [25, 86, 116, 120], "linuxnam": [25, 44, 133], "By": [25, 89, 92, 111, 117, 119], "high": 25, "inform": [25, 43, 44, 46, 51, 54, 55, 58, 72, 75, 76, 99, 133], "increas": [25, 26], "v": [25, 75, 99, 119], "well": [25, 27, 37, 40, 48], "x": [2, 25, 35, 92, 102, 123, 131], "alreadi": [25, 86, 92, 99, 102, 110, 121], "vv": 25, "vvv": 25, "both": [25, 27, 54, 86, 89, 99, 133], "support": [25, 26, 78, 88, 99, 123], "rang": [25, 98], "load": [25, 38, 89, 90, 119, 133], "cento": [25, 26, 52, 75, 82, 86, 97, 99, 123, 127, 133], "8": [25, 26, 29, 30, 70, 75, 86, 103, 119, 129], "time": [25, 35, 36, 38, 75, 86, 89, 92, 99, 102, 117, 119, 130, 133], "match": [25, 36, 54, 89, 99, 118], "glob": [25, 89], "style": [25, 26, 89], "pattern": [25, 37, 54, 87, 133], "app_serv": [25, 41, 89], "db": [25, 36, 41, 89, 113], "my_command_goes_her": 25, "right": [25, 133], "hand": [25, 132], "side": [25, 26, 37, 75, 99], "One": [25, 41, 88, 130], "top": 25, "featur": [25, 26, 41, 132], "abil": 25, "real": 25, "perfect": [25, 38], "larg": [25, 99], "elasticsearch": [25, 85], "cluster": 25, "stream": 25, "achiev": [25, 40, 43, 133], "easili": 25, "tail": 25, "builtin": 25, "here": [2, 25, 36, 37, 41, 87, 92, 121, 130, 133], "ensur": [25, 36, 40, 86, 88, 91, 92, 93, 95, 96, 97, 99, 101, 102, 107, 109, 110, 111, 112, 116, 119, 126, 127, 129, 133], "ubuntu": [25, 26, 29, 30, 44, 46, 75, 80, 86, 89, 92, 105, 123, 133], "updat": [2, 25, 26, 31, 36, 40, 90, 95, 96, 99, 101, 102, 103, 106, 107, 110, 111, 113, 118, 119, 122, 123, 133], "inventory2": 25, "yum": [25, 44, 90, 99, 133], "box": [25, 27], "control": [25, 29, 32, 85, 87, 98, 99, 110, 117, 123, 133], "boot": [25, 94, 104, 108, 117, 119, 122, 124], "coupl": 25, "wai": [25, 87, 120, 124, 133], "adhoc": 25, "assum": [25, 40, 89, 92, 96, 99, 101, 102, 119], "reboot_timeout": [25, 119], "delai": [25, 32, 36, 119], "bash_profil": [25, 115], "profil": 25, "bash": [2, 25, 75, 119], "sourc": [2, 25, 46, 51, 92, 97, 99, 102, 103, 127, 129, 130], "complet": [25, 36, 99, 119], "zsh": 25, "were": [25, 131], "_pyinfra_complet": 25, "bash_sourc": 25, "zsh_sourc": 25, "guarante": 26, "offer": [26, 78], "where": [26, 99, 103, 111, 117, 121, 133], "semant": [26, 47], "rule": [26, 60, 90], "mean": [2, 26, 32, 41, 86, 89, 99, 119, 133], "break": [26, 99, 133], "minor": [26, 47, 75], "Such": 26, "major": [26, 35, 47, 75, 97, 127], "due": 26, "next": [26, 36, 86], "releas": [26, 35, 75, 97, 99, 127, 129], "semver": 26, "latest": [26, 35, 88, 91, 92, 93, 95, 96, 97, 101, 107, 110, 111, 112, 120, 127, 129, 130], "previou": [26, 36], "new": [26, 27, 29, 32, 44, 86, 87, 90, 98, 99, 102, 113, 119, 132], "patch": [26, 47], "bug": 26, "fix": [26, 35], "work": [26, 35, 40, 54, 74, 89, 99, 102, 110, 111, 133], "anywher": [26, 89], "mac": [26, 93, 131], "window": [26, 35, 131], "To": [26, 35, 36, 86, 99, 119], "debug": [26, 36, 89], "explicitli": 26, "gevent": 26, "aim": [26, 36], "unix": [26, 131], "develop": [26, 35, 39, 88], "distro": [26, 92], "18": [26, 75, 86], "20": [26, 75, 123, 133], "debian": [26, 75, 92, 123], "9": [26, 76], "7": [26, 55, 88, 97, 127], "fedora": [26, 75, 123], "33": [26, 59], "alpin": [26, 29, 30, 91, 98], "bsd": [26, 48, 94, 111, 119], "flavour": 26, "openbsd": [26, 111, 119], "6": [26, 33, 88, 123], "freebsd": [26, 111], "12": [26, 55, 59], "netbsd": [26, 111], "hardenedbsd": 26, "11": [26, 59], "dragonflybsd": 26, "opensus": [26, 84, 129], "leap15": 26, "tumblewe": 26, "maco": [26, 31, 35, 75, 86], "15": [26, 92], "posix": [26, 119], "move": [26, 36, 99, 121], "lot": 26, "old": [26, 35, 99], "legaci": 26, "encount": 26, "seen": 26, "changelog": 26, "bring": 26, "again": [26, 36], "v2": [26, 129], "sens": 26, "replac": [26, 90], "wa": [26, 99, 121, 130], "confus": 26, "someshel": 26, "do": [27, 32, 36, 86, 92, 99, 119, 120, 133], "thing": [27, 36, 38, 86, 89], "vagrant": [27, 121], "check": [27, 32, 44, 54, 73, 78, 90, 91, 92, 93, 97, 105, 112, 119, 121, 127, 129, 132], "guid": [27, 44, 86, 87, 90], "popular": [27, 90], "chroot": 27, "dockerssh": 27, "allow": [28, 29, 30, 92, 113, 116, 118, 120, 133], "anoth": [28, 34, 40, 75, 121, 133], "imag": [29, 30, 53, 86, 90, 105], "save": [29, 86, 89, 99, 125, 133], "bionic": [29, 30, 75, 92], "2beb8c15a1b1": 29, "interact": [29, 32], "docker_identifi": 29, "beta": 30, "remotehost": 30, "compat": [31, 110, 119, 132], "ident": [32, 40, 119], "ssh_hostnam": [32, 33], "ssh_port": 32, "port": [32, 74, 90, 98, 99, 103, 106, 113, 115, 119, 121], "ssh_user": [32, 33, 89], "ssh_password": 32, "ssh_kei": [32, 89], "ssh_key_password": [32, 89], "ssh_allow_ag": 32, "agent": [32, 90, 130], "ssh_look_for_kei": 32, "look": [32, 36], "privat": 32, "ssh_forward_ag": 32, "forward": [32, 103], "ssh_config_fil": 32, "ssh_known_hosts_fil": 32, "known_host": [32, 99, 102, 121], "ssh_strict_host_key_check": 32, "strict": 32, "ssh_paramiko_connect_kwarg": 32, "paramiko": 32, "sshclient": 32, "ssh_connect_retri": 32, "tri": [32, 99], "ssh_connect_retry_min_delai": 32, "lower": 32, "random": [32, 40], "retri": 32, "float": 32, "ssh_connect_retry_max_delai": 32, "upper": 32, "share": [32, 39, 87, 98], "usernam": [32, 41, 106, 113], "ssh_usernam": [], "fetch": [33, 41, 85, 92], "flatten": 33, "json": [33, 41, 53], "server_group": 33, "server_group_node_ip": 33, "would": [33, 36, 39, 119], "extra": [33, 99, 103], "statu": [34, 40, 61, 65, 73, 74, 78, 79, 116], "vm": [34, 39, 119, 128], "thank": 35, "third": 35, "parti": 35, "pull": [35, 89, 98, 102], "help": [35, 78, 86], "expand": [35, 66, 99], "growth": 35, "ad": [2, 26, 35, 59, 87, 89, 99, 102, 115, 117, 130, 133], "There": [35, 133], "per": [35, 89, 122], "track": [35, 102, 120], "off": [35, 74], "unless": [35, 36, 86, 92, 99, 119, 133], "virtualenv": [35, 90], "choic": 35, "m": [35, 119], "venv": [35, 90], "pyenv": 35, "clone": [35, 102], "repo": [35, 40, 57, 84, 89, 90, 99], "git": [35, 44, 86, 89, 90], "github": [35, 37, 39, 89, 93, 102, 129, 130, 131, 133], "com": [2, 35, 39, 40, 44, 46, 58, 88, 89, 92, 93, 97, 99, 102, 119, 121, 127, 128, 129, 131], "fizzadar": [39, 89, 102], "edit": [35, 88, 99, 102, 119, 124], "cd": 35, "pip": [35, 44, 86, 90], "suit": 35, "part": [35, 59, 99, 119], "pytest": 35, "cov": 35, "coverag": 35, "expect": [35, 36, 78, 115], "drop": [26, 35, 103, 113], "overal": 35, "project": [0, 35, 38, 42, 93, 131], "select": [35, 63, 88], "e2": 35, "yet": [2, 35], "end_to_end_loc": 35, "end_to_end_ssh": 35, "end_to_end_dock": 35, "sphinx": 35, "doc": [2, 35, 93, 99, 132], "view": 35, "localhost": [35, 63, 99, 106], "8000": 35, "http": [2, 35, 39, 40, 46, 52, 78, 82, 84, 88, 92, 93, 96, 97, 99, 100, 101, 102, 111, 120, 127, 129], "d": [35, 48, 78, 92, 94, 99, 122, 123, 124], "lint": 35, "flake8": 35, "black": 35, "isort": 35, "codestyl": [], "just": [38, 89, 93, 98], "five": 36, "phase": [36, 133], "determin": [36, 44, 86], "cleanup": 36, "step": [36, 86], "through": [36, 99], "goal": 36, "about": [0, 36, 54, 131, 133], "ll": 36, "depth": 36, "explain": 36, "why": 36, "critic": 36, "databas": [36, 42, 63, 70], "webserv": [36, 42, 119], "web_serv": [36, 41, 42], "web": [36, 41, 42, 99, 118], "01": 36, "02": 36, "03": 36, "db_server": [36, 41, 42, 89], "And": [2, 36, 39, 42], "iftop": [36, 85, 86], "cache_tim": [36, 92, 99], "3600": [36, 92], "postgr": [36, 44, 90, 133], "postgresql": [36, 44, 70, 89, 90, 113], "realli": 36, "slow": 36, "But": 36, "stop": [36, 86, 90, 98, 123], "until": [36, 92, 97, 98, 127, 129], "onto": 36, "sequenti": 36, "individu": [36, 86, 89, 133], "pg_hba": 36, "made": [36, 38, 86], "immut": [36, 133], "arch": [36, 44, 109, 111, 133], "absolut": [36, 133], "sure": [36, 132, 133], "let": [2, 36, 39], "bad": 36, "highlight": [36, 37, 133], "problem": [36, 116], "site": [36, 110], "rememb": [36, 99], "figur": 36, "correct": 36, "detail": [36, 75, 89, 113, 125, 133], "explan": 36, "evalu": 36, "becom": [36, 89, 125], "solut": [36, 88], "reli": 36, "second": [36, 86, 92, 99, 117, 119], "case": [36, 86, 87, 97, 99, 111, 126, 127], "noth": [36, 86], "reload": [36, 94, 108, 117, 119, 122, 123, 124], "outcom": 36, "remove_default_sit": 36, "sinc": [36, 99, 119], "exactli": 36, "checkout": [37, 102], "properli": 37, "introduc": 37, "folder": [37, 99, 102, 133], "structur": [37, 74, 111], "common": [37, 87, 92, 99, 133], "practic": 37, "client": 37, "asset": 37, "dynam": 37, "role": [37, 70, 74, 90, 133], "often": 38, "pre": 38, "compil": [38, 88], "place": [38, 99, 103], "perform": 38, "kind": [38, 133], "yarn": 38, "alongsid": 38, "pick": [26, 38], "sai": [39, 133], "app": [39, 52, 55, 82, 89, 133], "wish": 39, "product": [39, 89], "dev": [39, 59, 74, 75], "good": [39, 86, 133], "layout": 39, "git_repo": 39, "differ": [32, 39, 44, 87, 99, 119], "git_branch": 39, "master": [39, 98, 102, 115], "around": 40, "idea": 40, "sometim": 40, "feed": 40, "mid": [40, 92, 97, 127, 129], "zeroti": 40, "authent": [40, 133], "authorize_serv": 40, "cat": 40, "lib": [40, 92], "public": [40, 58, 119], "assert": [40, 116], "ok": [40, 116], "server_id": 40, "author": 40, "respons": 40, "post": 40, "raise_for_statu": 40, "back": [26, 40, 99], "biggest": 41, "regular": 41, "result": [41, 133], "get_serv": 41, "mycompani": 41, "append": [41, 99, 103], "initi": 41, "without": [41, 91, 92, 93, 95, 96, 97, 99, 101, 107, 110, 112, 124, 127, 129], "master_db_serv": 41, "db_user": 41, "involv": [42, 99], "task": [42, 129, 133], "everywher": 42, "web1": 42, "web2": 42, "web3": 42, "db1": 42, "db2": 42, "db3": 42, "dbserver": 42, "encrypt": [43, 119], "sensit": [43, 97, 111, 126, 127], "privi": 43, "getpass": 43, "get_secret": 43, "encrypted_secret": 43, "pleas": [43, 59, 75, 131, 132], "peek": 43, "my_secret": 43, "altern": [43, 73, 89, 117], "might": 43, "top_secret_password": 43, "alter": [44, 63, 113], "popul": 44, "begin": [44, 54, 99], "test": [2, 44, 86, 88, 102, 111, 119, 130, 133], "myhost": 44, "date": [44, 86, 92, 99], "openssh": 44, "myhost2": 44, "deb": [44, 46, 90], "debpackag": [44, 92], "anotherfil": 44, "txt": [44, 121, 133], "leverag": 44, "namespac": 44, "shortcut": [44, 59, 75], "sidebar": 44, "apk": [44, 90], "apkpackag": [44, 91], "aptkei": [44, 92], "aptsourc": [44, 92], "brew": [44, 90], "brewcask": [44, 93], "brewpackag": [44, 93], "brewtap": [44, 93], "brewvers": [44, 93], "bsdinit": [44, 90], "rcdstatu": [44, 94], "cargo": [44, 90], "cargopackag": [44, 95], "choco": [44, 90], "chocopackag": [44, 96], "chocovers": 44, "debarch": 44, "dnf": [44, 86, 90, 127], "dnfrepositori": 44, "dockercontain": [44, 98], "dockerimag": 44, "dockernetwork": [44, 98], "dockersinglemixin": 44, "dockersysteminfo": 44, "finddirectori": 44, "findinfil": [44, 99, 119, 121], "findlink": [44, 123], "md5file": [44, 99], "sha1fil": [44, 99], "sha256fil": [44, 99], "socket": 44, "gem": [44, 90, 96], "gempackag": [44, 101], "gitbranch": [44, 102], "gitconfig": [44, 102], "gittrackingbranch": [44, 102], "gpg": [44, 46, 52, 82, 92, 97, 127, 129], "gpgkei": [44, 52, 82, 92, 97, 127, 129], "gpgsecretkei": 44, "hardwar": 44, "blockdevic": 44, "cpu": 44, "ipv4address": 44, "ipv4addr": 44, "ipv6address": 44, "ipv6addr": 44, "memori": 44, "networkdevic": 44, "iptabl": [44, 90], "ip6tableschain": [44, 103], "ip6tablesrul": [44, 103], "iptableschain": [44, 103], "iptablesrul": [44, 103], "launchd": [44, 90], "launchdstatu": [44, 104], "lxd": [44, 76, 90, 119, 120], "lxdcontain": [44, 105], "mysql": [44, 90], "mysqldatabas": [44, 106], "mysqlusergr": [44, 106], "mysqlus": [44, 106], "npm": [44, 90], "npmpackag": [44, 107], "openrc": [44, 90], "openrcen": [44, 108], "openrcstatu": [44, 108], "pacman": [44, 90], "pacmanpackag": [44, 109], "pacmanunpackgroup": [44, 109], "pip3packag": 44, "pippackag": [44, 110], "pkg": [44, 90, 91, 92, 93, 95, 96, 97, 101, 107, 109, 110, 127, 129], "pkgpackag": [44, 111], "pkgin": [44, 90], "pkginpackag": [44, 112], "postgresdatabas": [44, 113], "postgresrol": [44, 113], "postgresqldatabas": 44, "postgresqlrol": 44, "rpm": [44, 52, 82, 84, 90], "rpmpackag": [44, 97, 127, 129], "rpmpackageprovid": [44, 97, 127], "selinux": [44, 90], "filecontext": [44, 118], "filecontextmap": [44, 118], "seboolean": [44, 118], "seport": [44, 118], "crontab": [44, 90, 99], "hasgui": 44, "kernel": [44, 92, 119], "kernelmodul": [44, 119], "kernelvers": 44, "linuxdistribut": [44, 97, 123, 127], "linuxgui": 44, "lsbreleas": 44, "macosvers": 44, "mount": [44, 59, 90], "osvers": [44, 92, 111], "securitylimit": 44, "sysctl": [44, 90], "tmpdir": 44, "snap": [44, 90], "snapbasefact": 44, "snappackag": [44, 120], "systemden": [44, 122], "systemdstatu": [44, 122], "sysvinit": [44, 90], "initdstatu": [44, 123], "upstart": [44, 90], "upstartstatu": [44, 124], "vzctl": [44, 90], "openvzcontain": [44, 125], "xbp": [44, 90], "xbpspackag": [44, 126], "yumrepositori": 44, "zypper": [44, 90], "zypperrepositori": 44, "package_nam": [45, 47, 49, 50, 51, 56, 64, 66, 67, 68, 69, 72, 81], "keychain": [46, 58], "length": [46, 58], "uid": [46, 58, 75, 119], "oxygem": [46, 58], "url": [46, 58, 92, 93, 97, 99, 102, 115, 127, 129], "archiv": [46, 51], "org": [46, 52, 55, 78, 82, 84, 88, 92, 96, 97, 100, 101, 111, 127, 129], "distribut": [46, 75, 84, 123, 133], "trusti": 46, "compon": 46, "multivers": 46, "cask": [47, 90], "tap": [47, 90], "initd_statu": 48, "rc": [48, 94, 108, 122, 123, 124], "unlik": 48, "behav": 48, "trust": 48, "chocolatei": [50, 96], "architectur": [51, 75], "repositori": [51, 52, 82, 84, 91, 92, 93, 97, 102, 109, 111, 112, 126, 127, 129, 133], "amd64": [51, 88], "dpkg": 51, "releasev": [52, 82, 84], "baseurl": [52, 82, 84, 97, 127, 129], "mirror": [52, 82, 111], "contentdir": [52, 82], "basearch": [52, 82, 97, 127], "gpgcheck": [52, 82, 97, 127, 129], "pki": [52, 82], "centosoffici": [52, 82], "object_id": 53, "inspect": 53, "network": [53, 59, 90], "content": [54, 99, 118, 124], "marker": [54, 99], "possibli": [54, 73], "xrai": 54, "alpha": [54, 99], "644": [54, 85, 99, 133], "size": [54, 75, 128], "3928": 54, "quote_path": 54, "interpolate_vari": [54, 99, 119], "text": [54, 99, 133], "grep": [54, 99], "link_target": 54, "md5": [54, 99], "sha1sum": [54, 99], "doest": 54, "sha256": [54, 99], "keyr": 58, "fingerprint": 58, "abc": 58, "devic": [59, 75, 119], "sda1": 59, "39489508": 59, "used_perc": 59, "836392": 59, "40325900": 59, "interfac": [59, 103], "ipv4": [59, 98], "address": [59, 98, 99], "eth0": 59, "127": 59, "ipv6": [59, 98], "fe80": 59, "a00": 59, "27ff": 59, "mb": 59, "ipv4_address": 59, "ipv6_address": 59, "easier": 59, "tabl": [60, 63, 103, 106], "filter": [60, 98, 99, 103], "ip6tabl": [60, 103], "chain": [60, 90], "polici": [60, 103, 118], "prerout": [60, 103], "jump": [60, 103], "dnat": [60, 103], "mysql_us": [63, 106], "mysql_password": [63, 106], "mysql_host": [63, 106], "mysql_port": [63, 106], "associ": 63, "character_set": 63, "latin1": 63, "collation_nam": 63, "latin1_swedish_ci": 63, "grant": [63, 106], "privileg": [63, 74, 85, 90, 113, 118], "pyinfra_stuff": [63, 70, 106, 113], "insert": [63, 103], "max_connect": [63, 106], "runlevel": [65, 108, 123, 124], "virtual": [66, 110, 129], "psql_user": [70, 71, 113], "psql_password": [70, 71, 113], "psql_host": [70, 71, 113], "psql_port": [70, 71, 113], "metadata": [70, 133], "encod": [70, 113], "utf8": [70, 113], "collat": [70, 106], "en_u": [70, 75], "utf": [70, 75, 119], "ctype": 70, "super": 70, "createrol": [70, 113], "createdb": [70, 113], "my_packag": 72, "capabl": [72, 75], "system_u": 74, "object_r": 74, "default_t": 74, "s0": 74, "tcp": [74, 103, 118], "udp": [74, 103, 118], "dccp": [74, 118], "sctp": [74, 118], "been": [26, 74], "policycoreutil": 74, "definit": 74, "accord": 75, "unam": [75, 92], "cron": [75, 119], "minut": [75, 119], "hour": [75, 119], "month": [75, 119], "day_of_month": [75, 119], "day_of_week": [75, 119], "special_tim": [75, 119], "daili": [75, 77, 119], "datetim": 75, "gui": [75, 99], "module_nam": 75, "live": [75, 103], "gentoo": [75, 123], "04": [75, 86, 105, 133], "release_meta": [75, 97, 127], "codenam": 75, "focal": 75, "id_lik": 75, "c": [75, 88], "lsb_releas": 75, "lt": 75, "mv2": 75, "ext4": 75, "rw": 75, "relatim": 75, "renam": 75, "secur": [75, 119], "domain": [75, 119], "limit_typ": [75, 119], "soft": [75, 119], "nofil": [75, 119], "1048576": 75, "hard": [75, 99, 119], "memlock": 75, "unlimit": 75, "discov": [75, 87], "inotifi": 75, "max_queued_ev": 75, "16384": 75, "inod": 75, "44565": 75, "360": 75, "user_nam": [75, 77, 122], "comment": [75, 119], "bin": [2, 75, 99, 110, 119], "main_user_group": 75, "user_id": 75, "gid": [75, 119], "main_user_group_id": 75, "lastlog": 75, "last_login_tim": 75, "encrypted_password": 75, "publish": 76, "canon": 76, "j60k4jy0hppjwojw8dzdyc8obxkxujru": 76, "channel": [76, 120], "core18": 76, "core20": 76, "snapd": 76, "user_mod": [77, 122], "unit": [77, 122], "containerd": 77, "timer": [77, 122], "unfortun": 78, "mani": [78, 92], "misbehav": 78, "displai": 78, "refspec": 78, "linuxbas": 78, "lsb_3": 78, "lsb": 78, "iniscrptact": 78, "html": [2, 78, 98, 99], "openvz": [80, 125], "ctid": [80, 125], "666": 80, "ostempl": 80, "autorefresh": 84, "leap": 84, "oss": 84, "md": [84, 129], "faq": 85, "escal": 85, "someus": 85, "ing": [85, 86], "ownership": 85, "stuff": 86, "instruct": [86, 92, 133], "assign": [86, 89], "uptim": 86, "immedi": [86, 133], "quick": [86, 87, 132], "spin": 86, "what": [86, 99, 133], "won": [86, 92, 97, 111, 117, 127, 129], "becaus": [86, 88, 89, 123, 133], "vim": [86, 91, 92, 93, 97, 109, 111, 112, 119, 126, 127, 129], "httpd": 86, "report": [86, 132], "imageid": 86, "reus": 86, "commit": [86, 102], "think": [86, 89, 133], "ansibl": [86, 130], "playbook": 86, "chef": 86, "cookbook": 86, "my_host": 86, "subsequ": 86, "That": 86, "infrastructur": 87, "welcom": 87, "v3": [2, 87], "quickest": 87, "learn": [87, 133], "committ": 87, "hoc": [87, 130], "frequent": 87, "ask": [87, 132], "question": [87, 132], "answer": 87, "commonli": 87, "focu": 87, "index": [87, 89, 133], "terraform": 87, "g": [87, 98, 119, 128, 133], "redistribut": 87, "recommend": [35, 88, 91, 92], "windowsserver2019": 88, "www": [88, 92, 99, 100], "ex": [88, 92, 98], "administr": [88, 96, 117], "perhap": 88, "visual": 88, "studio": 88, "commun": [88, 132], "visualstudio": 88, "microsoft": 88, "desktop": 88, "least": 88, "msvc": 88, "v142": 88, "sdk": [55, 88], "cmake": 88, "atl": 88, "daemon": [89, 122], "data_dict": 89, "install_postgr": 89, "dir": [89, 99], "group_nam": 89, "receiv": 89, "app_us": [89, 133], "myuser": [89, 133], "app_dir": [89, 133], "opt": [89, 98, 133], "rel": [89, 99, 119, 133], "chdir": [26, 89], "basi": 89, "explor": 89, "some_kei": 89, "pretti": 89, "much": [89, 120], "necessari": [90, 99], "reach": 90, "categori": 90, "alphabet": 90, "upgrad": [90, 95, 96, 97, 101, 107, 110, 127, 129], "dist_upgrad": 90, "ppa": 90, "cask_upgrad": 90, "put": 90, "sync": 90, "bare_repo": 90, "worktre": 90, "dump": 90, "sql": 90, "puppet": 90, "file_context": 90, "file_context_map": 90, "modprob": 90, "reboot": 90, "script_templ": 90, "security_limit": 90, "user_authorized_kei": 90, "keyscan": [90, 102], "daemon_reload": 90, "delet": [90, 99], "restart": [90, 94, 104, 108, 117, 119, 122, 123, 124], "unmount": 90, "pin": [91, 92, 93, 95, 96, 97, 101, 107, 109, 110, 127, 129], "asterisk": [91, 92], "idempot": [91, 92, 93, 96, 97, 98, 99, 102, 106, 109, 112, 113, 114, 115, 116, 117, 119, 121, 122, 125, 126, 127, 129], "forc": [91, 92, 98, 99, 102, 119, 121, 125], "whole": 91, "ye": 92, "unmet": 92, "depend": [92, 133], "isn": [92, 97, 127, 129], "wget": [92, 99], "chrome": 92, "dl": [92, 97, 127], "googl": 92, "stable_current_amd64": 92, "emploi": 92, "dist": 92, "keyserv": 92, "keyid": 92, "virtualbox": 92, "oracle_vbox_2016": 92, "asc": 92, "no_recommend": 92, "allow_downgrad": 92, "extra_install_arg": [92, 97, 110, 127, 129], "extra_uninstall_arg": [92, 97, 127, 129], "downgrad": 92, "uninstal": [92, 97, 110, 127, 129], "period": 92, "stamp": 92, "upon": 92, "r": [92, 99, 118], "72": 92, "header": [92, 99], "softwar": 92, "bitcoin": 92, "hardi": 92, "contrib": 92, "auto_remov": 92, "autoremov": 92, "transit": 92, "longer": 92, "unneed": 92, "osx": 93, "godot": 93, "vimpag": [93, 119, 126], "includeo": 93, "equival": 93, "kptdev": 93, "kpt": 93, "ktr0731": 93, "evan": 93, "usr": [94, 98, 99, 102, 110], "custom": [0, 94, 104, 108, 117, 119, 122, 124], "disabl": [94, 99, 104, 108, 117, 119, 122, 123, 124], "aka": [95, 107], "rust": 95, "notepad": 96, "notepadplusplu": 96, "linux_id": [97, 127], "clean": [97, 127, 129], "nobest": [97, 127], "enhanc": [97, 127, 129], "verbos": [97, 127, 129], "valid": [97, 127, 129], "manual": [97, 98, 118, 123, 124, 127, 129], "construct": [97, 127, 129], "ce": [97, 99, 127], "dockerc": [97, 127], "ore": [97, 127, 129], "major_centos_vers": 97, "epel": [97, 127], "fedoraproject": [97, 127], "pub": [97, 111, 127], "noarch": [97, 127], "surround": 99, "appropri": 99, "backup": [99, 119], "escape_regex_charact": 99, "try_prevent_shell_expans": 99, "regex": 99, "escap": 99, "charact": 99, "prevent": [99, 119], "mark": 99, "prepend": 99, "expans": 99, "awk": 99, "quot": 99, "entri": [0, 99, 119], "red": 99, "mar": 99, "n10": 99, "bodi": 99, "alia": 99, "zshrc": 99, "eval": 99, "thefuck": 99, "alias": 99, "force_backup": 99, "force_backup_dir": 99, "dir_that_we_want_remov": 99, "myweb": [99, 119], "netboot": 99, "tftp": 99, "nf": 99, "sha256sum": 99, "md5sum": 99, "insecur": 99, "proxi": [98, 99], "even": [99, 102, 121], "checksum": 99, "verif": 99, "yourproxi": 99, "create_remote_dir": 99, "755": 99, "umask": 99, "600": [99, 119], "clear": 99, "librari": 99, "visibl": 99, "hidden": 99, "veri": 99, "uchg": 99, "schg": 99, "add_deploy_dir": [99, 119], "create_local_dir": 99, "suitabl": 99, "whocar": 99, "sed": 99, "ensure_newlin": 99, "entir": [99, 133], "interpol": [99, 119], "swap": 99, "special": [99, 119], "iso": 99, "taken": 99, "seper": [], "newlin": 99, "mainten": 99, "maintenance_lin": 99, "down": [73, 99, 117], "FOR": 99, "motd": 99, "Then": 99, "ro": 99, "no_wdelai": 99, "insecure_lock": 99, "no_root_squash": 99, "no_subtree_check": 99, "python3": 99, "sudoer": 99, "nopasswd": 99, "doubl": 99, "quotaus": 99, "addus": 99, "conf": [99, 119], "symbol": 99, "recreat": 99, "issue2": 99, "issu": [99, 132], "assume_exist": 99, "dai": [98, 99, 119], "stringio": 99, "verboten": 99, "forbidden": 99, "binari": 99, "ax": [], "automat": [99, 117, 124], "stricthostkeycheck": 99, "dir_mod": 99, "exclud": 99, "exclude_dir": 99, "pyc": 99, "node_modul": 99, "interpret": [99, 110], "tempdir": 99, "fnmatch": 99, "behind": 99, "scene": 99, "treat": 99, "howev": 99, "deep": 99, "__pycache__": 99, "convent": 99, "suffix": 99, "j2": [99, 119, 133], "somefil": 99, "foo_vari": 99, "foo": [99, 118], "foo_dict": 99, "str1": 99, "str2": 99, "foo_list": 99, "dict_cont": 99, "list_cont": 99, "endfor": 99, "yml": 99, "rubi": 101, "rubygem": 101, "rspec": 101, "bare": 102, "chown": 102, "multi_valu": 102, "anon": 102, "mous": 102, "branch": 102, "rebas": 102, "ssh_keyscan": [102, 121], "update_submodul": 102, "recursive_submodul": 102, "submodul": 102, "detach": 102, "new_branch": 102, "commitish": 102, "from_remote_branch": 102, "assume_repo_exist": 102, "tree": 102, "head": 102, "identifi": [98, 102, 105, 119], "unclean": 102, "hotfix": 102, "4e091aa0": 102, "origin": 102, "not_protocol": 103, "not_sourc": 103, "destin": 103, "not_destin": 103, "in_interfac": 103, "not_in_interfac": 103, "out_interfac": 103, "not_out_interfac": 103, "to_destin": 103, "to_sourc": 103, "to_port": 103, "log_prefix": 103, "destination_port": 103, "source_port": 103, "incom": 103, "outgo": 103, "rout": [98, 103], "snat": 103, "redirect": 103, "physdev": 103, "traffic": 103, "22": [59, 74, 103, 121], "nat": 103, "53": 103, "8080": 103, "launchctl": 104, "16": 105, "absent": [105, 113], "ubuntu19": 105, "19": 105, "four": [106, 113], "charset": 106, "user_hostnam": 106, "user_privileg": 106, "mysql_": 106, "attempt": [113, 119], "mysqldump": 106, "pyinfra_stuff_copi": [106, 113], "flush": 106, "with_grant_opt": 106, "require_ciph": 106, "require_issu": 106, "require_subject": 106, "max_queries_per_hour": 106, "max_updates_per_hour": 106, "max_connections_per_hour": 106, "cannot": 118, "detect": 119, "somepassword": 113, "resourc": [120, 133], "50": [], "certif": [], "x509": [], "se": [], "st": [], "stockholm": [], "edh": [], "rsa": [], "de": 59, "cbc3": [], "sha": [], "node": 107, "j": 107, "sy": 109, "plugin": 109, "fugit": 109, "virtualenv_kwarg": 110, "site_packag": 110, "always_copi": 110, "symlink": [110, 117], "standard": 110, "pkg_": 111, "variant": 111, "elsewher": 111, "pkg_path": 111, "autogener": 111, "ftp": 111, "offici": [111, 131, 132], "helpfulli": 111, "addon": 111, "tmux": 112, "psql": 113, "owner": 113, "lc_collat": 113, "lc_ctype": 113, "tablespac": 113, "connection_limit": 113, "psql_": 113, "pg_dump": 113, "superus": 113, "inherit": 113, "replic": 113, "success_exit_cod": 115, "my_callback": 116, "callback": [116, 133], "notimplementederror": 116, "bool_nam": 118, "persist": [118, 119], "apach": 118, "ldap": 118, "httpd_can_network_connect": 118, "se_typ": 118, "express": 118, "bar": 118, "serv": 118, "httpd_sys_content_t": 118, "restorecon": 118, "port_num": 118, "2222": 118, "http_port_t": 118, "care": 119, "cron_nam": 119, "whose": 119, "cronjob": 119, "futur": [2, 119], "overwrit": 119, "week": 119, "nicknam": 119, "uniqu": 119, "weekli": 119, "tar": 119, "cf": 119, "etc_bup": 119, "backup_etc": 119, "groupid": 119, "wheel": 119, "luser": 119, "hostnamectl": 119, "older": [98, 119], "hostname_fil": 119, "perman": 119, "matter": 119, "auto": [90, 119], "mynam": 119, "server1": 119, "en_gb": 119, "unload": 119, "silli": 119, "floppi": 119, "fs_type": 119, "remount": 119, "fstab": 119, "presenc": 119, "relev": 119, "reconnect": 119, "interv": 119, "300": 119, "total": 119, "60": 119, "some_var": 119, "hello2": 119, "blah": 119, "wildcard": 119, "nproc": 119, "1024": 119, "persist_fil": 119, "max": 119, "100000": 119, "authorized_kei": 119, "public_kei": 119, "delete_kei": 119, "ensure_hom": 119, "create_hom": 119, "primari": 119, "secondari": 119, "skeleton": 119, "account": 119, "userid": 119, "geco": 119, "duplic": 119, "newli": 119, "kevin": 119, "bob": 119, "authorized_key_directori": 119, "authorized_key_filenam": 119, "ed25519": 119, "netstat": 119, "80": [98, 119, 123], "snapcraft": 120, "classic": 120, "confin": 120, "tradit": 120, "correspond": 120, "vlc": [55, 100, 120], "neovim": 120, "nvim": 120, "scp": 121, "local_filenam": 121, "rescan": 121, "use_remote_sudo": 121, "systemctl": 122, "session": 122, "dnsmasq": 122, "logrot": 122, "rcx": 123, "y": [123, 126], "start_prior": 123, "stop_prior": 123, "start_level": 123, "stop_level": 123, "prioriti": 123, "d_enabl": 123, "finer": 123, "rsyslog": 123, "sysv": 123, "mess": 123, "certain": [123, 133], "rhel": 123, "chkconfig": 123, "granular": 123, "job": 124, "fiddl": 124, "vztctl": 125, "u": 126, "pager": 126, "major_vers": 127, "extra_global_install_arg": 129, "extra_global_uninstall_arg": 129, "field": 129, "opensuse_tumblewe": 129, "task_linux_amd64": 129, "less": 130, "2024": 130, "benchmark": 130, "fabric": 130, "act": 130, "closer": 130, "opentyp": 131, "font": 131, "complement": 131, "san": 131, "famili": 131, "afdko": 131, "makeotf": 131, "suggest": 131, "maintain": 131, "frank": 131, "grie\u00dfhamm": 131, "mailto": 131, "opensourcefont": 131, "adob": 131, "subject": 131, "consider": 131, "background": 131, "readm": 131, "chat": 132, "matrix": 132, "room": 132, "stack": 132, "overflow": 132, "tag": [98, 102, 132], "scan": 132, "referenc": 132, "anyon": 132, "els": 132, "submit": 132, "fantast": 132, "tell": 133, "cover": 133, "retriev": 133, "At": 133, "flow": 133, "plane": 133, "retreiv": [], "nano": 133, "db_host": 133, "db_hostnam": 133, "yaml": 133, "myapp": 133, "meta": 133, "create_us": 133, "awai": 133, "runtim": 133, "got": 133, "scenario": 133, "install_someth": 133, "overridden": 133, "great": 133, "pend": 2, "_inner": 3, "all_global_argu": 5, "_raise_if_not_complet": 16, "will_chang": 16, "nonetyp": 24, "enforc": 35, "mypi": 35, "pyright": 35, "though": 35, "handi": 35, "dockervolum": [44, 98], "runit": [44, 90], "runitmanag": [44, 117], "runitstatu": [44, 117], "volum": [44, 53, 90], "svdir": [73, 117], "agetti": 73, "tty1": 73, "dhcpcd": 73, "wpa_supplic": 73, "prune": 90, "wait_runsv": 90, "env_var": 98, "pull_alwai": 98, "expos": 98, "varibl": 98, "inject": 98, "contan": 98, "nginx_data": 98, "driver": 98, "gatewai": 98, "ip_rang": 98, "ipam_driv": 98, "subnet": 98, "scope": 98, "ipam_opt": 98, "label": 98, "ingress": 98, "network_nam": 98, "alloc": [98, 128], "cidr": 98, "segment": 98, "ipam": 98, "swarm": 98, "mesh": 98, "unus": 98, "dangl": 98, "ones": 98, "anonym": 98, "24h": 98, "90": 98, "2160h": 98, "storag": 98, "sourcedir": 117, "sv": 117, "effect": 117, "although": 117, "still": 117, "runsv": 117, "ON": 118, "NOT": 92, "wiki": 92, "debianrepositori": 92, "usethirdparti": 92, "jinja_env_kwarg": [19, 99], "flatpak": [44, 90], "flatpakbasefact": 44, "flatpakpackag": [44, 100], "zf": [44, 90], "dataset": [44, 90], "snapshot": [44, 90], "signal": 55, "ref": 55, "x86_64": 55, "gnome": 55, "platform": 55, "kde": 55, "libreoffic": 55, "videolan": [55, 100], "jinja": 99, "render": 99, "kodi": 100, "tv": 100, "destroi": 128, "dataset_nam": 128, "spars": 128, "volume_s": 128, "parent": 128, "child": 128, "extra_prop": 128, "prop": 128, "merg": 128, "conveni": 128, "tank": 128, "srv": 128, "mountpoint": 128, "compress": 128, "lz4": 128, "sun": 128, "auto_snapshot": 128, "db_srv_04": 128, "32g": 128, "old_vers": 128, "fs_name": 128, "snapshot_nam": 128, "weekly_backup": 128, "volume_nam": 128, "create_otherus": 133, "otherus": 133, "lamba": 133, "lambda": 133, "gain": 0, "knowledg": 0, "snippet": 0, "module_path": 0, "class_nam": 0, "pyinfra_custom_connector": 0, "loggingconnector": 0, "en": 2, "apidoc": 2, "result1": 2, "result2": 2, "whoami": 2, "_use_sudo_password": 26, "mydeploi": 26, "winrm": 26, "minimum": 26, "concept": 26, "ambigu": 26, "magic": 26, "enp1s0": 59, "ether": 59, "34": 59, "56": 59, "78": 59, "9a": 59, "bc": 59, "mtu": 59, "1500": 59, "192": 59, "168": 59, "100": 59, "mask_bit": 59, "24": 59, "netmask": 59, "255": 59, "2001": 59, "db8": 59, "85a3": 59, "8a2e": 59, "370": 59, "7334": 59, "64": 59, "additional_ip": 59, "1234": 59, "5678": 59, "9abc": 59, "def0": 59, "incusbr0": 59, "BE": 59, "ef": 59, "ca": 59, "fe": 59, "dead": 59, "beef": 59, "cafe": 59, "babe": 59, "lo": 59, "65536": 59, "128": 59, "veth98806fd6": 59, "aa": 59, "bb": 59, "cc": 59, "dd": 59, "ee": 59, "ff": 59, "vethda29df81": 59, "44": 59, "55": 59, "66": 59, "wlo1": 59, "77": 59, "88": 59, "99": 59, "unknown": 59, "ssh_port_t": 74, "regist": 102, "never": 102}, "objects": {"pyinfra.api": [[5, 0, 0, "-", "arguments"], [6, 0, 0, "-", "arguments_typed"], [7, 0, 0, "-", "command"], [8, 0, 0, "-", "config"], [9, 0, 0, "-", "connect"], [10, 0, 0, "-", "connectors"], [11, 0, 0, "-", "deploy"], [12, 0, 0, "-", "exceptions"], [13, 0, 0, "-", "facts"], [14, 0, 0, "-", "host"], [15, 0, 0, "-", "inventory"], [16, 0, 0, "-", "operation"], [17, 0, 0, "-", "operations"], [18, 0, 0, "-", "state"], [19, 0, 0, "-", "util"]], "pyinfra.api.arguments": [[5, 1, 1, "", "AllArguments"], [5, 1, 1, "", "ArgumentMeta"], [5, 1, 1, "", "ConnectorArguments"], [5, 1, 1, "", "ExecutionArguments"], [5, 1, 1, "", "MetaArguments"], [5, 3, 1, "", "all_global_arguments"], [5, 3, 1, "", "generate_env"], [5, 3, 1, "", "pop_global_arguments"]], "pyinfra.api.arguments.AllArguments": [[5, 2, 1, "", "name"]], "pyinfra.api.arguments.ArgumentMeta": [[5, 2, 1, "", "default"], [5, 2, 1, "", "description"], [5, 2, 1, "", "handler"]], "pyinfra.api.arguments.MetaArguments": [[5, 2, 1, "", "name"]], "pyinfra.api.arguments_typed": [[6, 1, 1, "", "PyinfraOperation"]], "pyinfra.api.command": [[7, 1, 1, "", "FileDownloadCommand"], [7, 1, 1, "", "FileUploadCommand"], [7, 1, 1, "", "FunctionCommand"], [7, 1, 1, "", "MaskString"], [7, 1, 1, "", "PyinfraCommand"], [7, 1, 1, "", "QuoteString"], [7, 1, 1, "", "RsyncCommand"], [7, 1, 1, "", "StringCommand"], [7, 3, 1, "", "make_formatted_string_command"]], "pyinfra.api.command.FileDownloadCommand": [[7, 4, 1, "", "execute"]], "pyinfra.api.command.FileUploadCommand": [[7, 4, 1, "", "execute"]], "pyinfra.api.command.FunctionCommand": [[7, 4, 1, "", "execute"]], "pyinfra.api.command.PyinfraCommand": [[7, 2, 1, "", "connector_arguments"], [7, 4, 1, "", "execute"]], "pyinfra.api.command.QuoteString": [[7, 2, 1, "", "obj"]], "pyinfra.api.command.RsyncCommand": [[7, 4, 1, "", "execute"]], "pyinfra.api.command.StringCommand": [[7, 4, 1, "", "execute"], [7, 4, 1, "", "get_masked_value"], [7, 4, 1, "", "get_raw_value"]], "pyinfra.api.config": [[8, 1, 1, "", "Config"], [8, 1, 1, "", "ConfigDefaults"], [8, 3, 1, "", "check_pyinfra_version"], [8, 3, 1, "", "check_require_packages"]], "pyinfra.api.config.Config": [[8, 4, 1, "", "copy"], [8, 4, 1, "", "get_current_state"], [8, 4, 1, "", "lock_current_state"], [8, 4, 1, "", "reset_locked_state"], [8, 4, 1, "", "set_current_state"]], "pyinfra.api.config.ConfigDefaults": [[8, 2, 1, "", "CONNECT_TIMEOUT"], [8, 2, 1, "", "DEFAULT_TEMP_DIR"], [8, 2, 1, "", "DOAS"], [8, 2, 1, "", "DOAS_USER"], [8, 2, 1, "", "FAIL_PERCENT"], [8, 2, 1, "", "IGNORE_ERRORS"], [8, 2, 1, "", "PARALLEL"], [8, 2, 1, "", "PRESERVE_SUDO_ENV"], [8, 2, 1, "", "PRESERVE_SU_ENV"], [8, 2, 1, "", "REQUIRE_PACKAGES"], [8, 2, 1, "", "REQUIRE_PYINFRA_VERSION"], [8, 2, 1, "", "SHELL"], [8, 2, 1, "", "SUDO"], [8, 2, 1, "", "SUDO_PASSWORD"], [8, 2, 1, "", "SUDO_USER"], [8, 2, 1, "", "SU_SHELL"], [8, 2, 1, "", "SU_USER"], [8, 2, 1, "", "TEMP_DIR"], [8, 2, 1, "", "USE_SUDO_LOGIN"], [8, 2, 1, "", "USE_SU_LOGIN"]], "pyinfra.api.connect": [[9, 3, 1, "", "connect_all"], [9, 3, 1, "", "disconnect_all"]], "pyinfra.api.connectors": [[10, 3, 1, "", "get_all_connectors"], [10, 3, 1, "", "get_execution_connector"], [10, 3, 1, "", "get_execution_connectors"]], "pyinfra.api.deploy": [[11, 3, 1, "", "add_deploy"], [11, 3, 1, "", "deploy"]], "pyinfra.api.exceptions": [[12, 5, 1, "", "ArgumentTypeError"], [12, 5, 1, "", "ConnectError"], [12, 5, 1, "", "ConnectorDataTypeError"], [12, 5, 1, "", "DeployError"], [12, 5, 1, "", "FactError"], [12, 5, 1, "", "FactTypeError"], [12, 5, 1, "", "FactValueError"], [12, 5, 1, "", "InventoryError"], [12, 5, 1, "", "NoConnectorError"], [12, 5, 1, "", "NoGroupError"], [12, 5, 1, "", "NoHostError"], [12, 5, 1, "", "OperationError"], [12, 5, 1, "", "OperationTypeError"], [12, 5, 1, "", "OperationValueError"], [12, 5, 1, "", "PyinfraError"]], "pyinfra.api.facts": [[13, 1, 1, "", "FactBase"], [13, 1, 1, "", "ShortFactBase"], [13, 3, 1, "", "get_fact"], [13, 3, 1, "", "get_facts"], [13, 3, 1, "", "get_host_fact"], [13, 3, 1, "", "get_short_facts"]], "pyinfra.api.facts.FactBase": [[13, 2, 1, "", "abstract"], [13, 2, 1, "", "command"], [13, 4, 1, "", "default"], [13, 2, 1, "", "name"], [13, 4, 1, "", "process"], [13, 4, 1, "", "process_pipeline"], [13, 4, 1, "", "requires_command"], [13, 2, 1, "", "shell_executable"]], "pyinfra.api.facts.ShortFactBase": [[13, 2, 1, "", "fact"], [13, 2, 1, "", "name"], [13, 4, 1, "", "process_data"]], "pyinfra.api.host": [[14, 1, 1, "", "Host"], [14, 1, 1, "", "HostData"], [14, 3, 1, "", "extract_callable_datas"]], "pyinfra.api.host.Host": [[14, 2, 1, "", "T"], [14, 4, 1, "", "arguments"], [14, 4, 1, "", "check_can_rsync"], [14, 4, 1, "", "connect"], [14, 2, 1, "", "connected"], [14, 2, 1, "", "connector"], [14, 2, 1, "", "connector_cls"], [14, 2, 1, "", "connector_data"], [14, 2, 1, "", "current_deploy_data"], [14, 2, 1, "", "current_deploy_kwargs"], [14, 2, 1, "", "current_deploy_name"], [14, 2, 1, "", "current_op_deploy_data"], [14, 2, 1, "", "current_op_global_arguments"], [14, 2, 1, "", "current_op_hash"], [14, 4, 1, "", "deploy"], [14, 4, 1, "", "disconnect"], [14, 2, 1, "", "executing_op_hash"], [14, 4, 1, "", "get_deploy_data"], [14, 4, 1, "", "get_fact"], [14, 4, 1, "", "get_file"], [14, 4, 1, "", "get_temp_filename"], [14, 6, 1, "", "group_data"], [14, 6, 1, "", "host_data"], [14, 2, 1, "", "in_callback_op"], [14, 2, 1, "", "in_deploy"], [14, 2, 1, "", "in_op"], [14, 4, 1, "", "init"], [14, 4, 1, "", "log"], [14, 4, 1, "", "log_styled"], [14, 4, 1, "", "loop"], [14, 2, 1, "", "loop_position"], [14, 2, 1, "", "nested_executing_op_hash"], [14, 4, 1, "", "noop"], [14, 6, 1, "", "print_prefix"], [14, 4, 1, "", "put_file"], [14, 4, 1, "", "rsync"], [14, 4, 1, "", "run_shell_command"], [14, 2, 1, "", "state"], [14, 4, 1, "", "style_print_prefix"], [14, 4, 1, "", "when"]], "pyinfra.api.host.HostData": [[14, 4, 1, "", "dict"], [14, 4, 1, "", "get"], [14, 2, 1, "", "override_datas"]], "pyinfra.api.inventory": [[15, 1, 1, "", "Inventory"], [15, 3, 1, "", "extract_name_data"]], "pyinfra.api.inventory.Inventory": [[15, 4, 1, "", "empty"], [15, 4, 1, "", "get_data"], [15, 4, 1, "", "get_group"], [15, 4, 1, "", "get_group_data"], [15, 4, 1, "", "get_groups_data"], [15, 4, 1, "", "get_host"], [15, 4, 1, "", "get_host_data"], [15, 4, 1, "", "get_override_data"], [15, 4, 1, "", "iter_activated_hosts"], [15, 4, 1, "", "iter_active_hosts"], [15, 4, 1, "", "len_activated_hosts"], [15, 4, 1, "", "len_active_hosts"], [15, 4, 1, "", "make_hosts_and_groups"], [15, 2, 1, "", "state"]], "pyinfra.api.operation": [[16, 1, 1, "", "OperationMeta"], [16, 3, 1, "", "add_op"], [16, 3, 1, "", "attach_args"], [16, 3, 1, "", "ensure_shared_op_meta"], [16, 3, 1, "", "execute_immediately"], [16, 3, 1, "", "generate_operation_name"], [16, 3, 1, "", "get_operation_name_from_func"], [16, 3, 1, "", "operation"], [16, 3, 1, "", "solve_operation_consistency"]], "pyinfra.api.operation.OperationMeta": [[16, 6, 1, "", "changed"], [16, 4, 1, "", "did_change"], [16, 4, 1, "", "did_error"], [16, 4, 1, "", "did_not_change"], [16, 4, 1, "", "did_succeed"], [16, 6, 1, "", "executed"], [16, 4, 1, "", "is_complete"], [16, 4, 1, "", "set_complete"], [16, 6, 1, "", "stderr"], [16, 6, 1, "", "stderr_lines"], [16, 6, 1, "", "stdout"], [16, 6, 1, "", "stdout_lines"], [16, 6, 1, "", "will_change"]], "pyinfra.api.operations": [[17, 3, 1, "", "run_host_op"], [17, 3, 1, "", "run_ops"]], "pyinfra.api.state": [[18, 1, 1, "", "BaseStateCallback"], [18, 1, 1, "", "State"], [18, 1, 1, "", "StateHostMeta"], [18, 1, 1, "", "StateHostResults"], [18, 1, 1, "", "StateOperationHostData"], [18, 1, 1, "", "StateOperationMeta"], [18, 1, 1, "", "StateStage"]], "pyinfra.api.state.BaseStateCallback": [[18, 4, 1, "", "host_before_connect"], [18, 4, 1, "", "host_connect"], [18, 4, 1, "", "host_connect_error"], [18, 4, 1, "", "host_disconnect"], [18, 4, 1, "", "operation_end"], [18, 4, 1, "", "operation_host_error"], [18, 4, 1, "", "operation_host_start"], [18, 4, 1, "", "operation_host_success"], [18, 4, 1, "", "operation_start"]], "pyinfra.api.state.State": [[18, 4, 1, "", "activate_host"], [18, 4, 1, "", "add_callback_handler"], [18, 2, 1, "", "check_for_changes"], [18, 2, 1, "", "config"], [18, 2, 1, "", "current_deploy_filename"], [18, 2, 1, "", "current_exec_filename"], [18, 2, 1, "", "current_op_file_number"], [18, 2, 1, "", "current_stage"], [18, 2, 1, "", "cwd"], [18, 4, 1, "", "fail_hosts"], [18, 4, 1, "", "get_meta_for_host"], [18, 4, 1, "", "get_op_data_for_host"], [18, 4, 1, "", "get_op_meta"], [18, 4, 1, "", "get_op_order"], [18, 4, 1, "", "get_results_for_host"], [18, 4, 1, "", "get_warning_counter"], [18, 4, 1, "", "increment_warning_counter"], [18, 4, 1, "", "init"], [18, 2, 1, "", "initialised"], [18, 2, 1, "", "inventory"], [18, 2, 1, "", "is_executing"], [18, 4, 1, "", "is_host_in_limit"], [18, 2, 1, "", "pool"], [18, 2, 1, "", "print_fact_info"], [18, 2, 1, "", "print_fact_input"], [18, 2, 1, "", "print_fact_output"], [18, 2, 1, "", "print_input"], [18, 2, 1, "", "print_noop_info"], [18, 2, 1, "", "print_output"], [18, 4, 1, "", "set_op_data_for_host"], [18, 4, 1, "", "set_stage"], [18, 4, 1, "", "should_check_for_changes"], [18, 2, 1, "", "should_raise_failed_hosts"], [18, 2, 1, "", "stage_warnings"], [18, 4, 1, "", "trigger_callbacks"]], "pyinfra.api.state.StateHostMeta": [[18, 2, 1, "", "op_hashes"], [18, 2, 1, "", "ops"], [18, 2, 1, "", "ops_change"], [18, 2, 1, "", "ops_no_change"]], "pyinfra.api.state.StateHostResults": [[18, 2, 1, "", "error_ops"], [18, 2, 1, "", "ignored_error_ops"], [18, 2, 1, "", "ops"], [18, 2, 1, "", "partial_ops"], [18, 2, 1, "", "success_ops"]], "pyinfra.api.state.StateOperationHostData": [[18, 2, 1, "", "command_generator"], [18, 2, 1, "", "global_arguments"], [18, 2, 1, "", "operation_meta"], [18, 2, 1, "", "parent_op_hash"]], "pyinfra.api.state.StateOperationMeta": [[18, 2, 1, "", "args"], [18, 2, 1, "", "global_arguments"], [18, 2, 1, "", "names"], [18, 2, 1, "", "op_order"]], "pyinfra.api.state.StateStage": [[18, 2, 1, "", "Connect"], [18, 2, 1, "", "Disconnect"], [18, 2, 1, "", "Execute"], [18, 2, 1, "", "Prepare"], [18, 2, 1, "", "Setup"]], "pyinfra.api.util": [[19, 3, 1, "", "format_exception"], [19, 3, 1, "", "get_call_location"], [19, 3, 1, "", "get_caller_frameinfo"], [19, 1, 1, "", "get_file_io"], [19, 3, 1, "", "get_file_path"], [19, 3, 1, "", "get_file_sha1"], [19, 3, 1, "", "get_kwargs_str"], [19, 3, 1, "", "get_operation_order_from_stack"], [19, 3, 1, "", "get_path_permissions_mode"], [19, 3, 1, "", "get_template"], [19, 3, 1, "", "log_error_or_warning"], [19, 3, 1, "", "log_host_command_error"], [19, 3, 1, "", "log_operation_start"], [19, 3, 1, "", "make_hash"], [19, 3, 1, "", "memoize"], [19, 3, 1, "", "print_host_combined_output"], [19, 3, 1, "", "raise_if_bad_type"], [19, 3, 1, "", "sha1_hash"], [19, 3, 1, "", "try_int"]], "pyinfra.api.util.get_file_io": [[19, 6, 1, "", "cache_key"], [19, 2, 1, "", "filename_or_io"], [19, 2, 1, "", "mode"]], "pyinfra": [[20, 0, 0, "-", "context"], [21, 0, 0, "-", "local"], [22, 0, 0, "-", "progress"], [23, 0, 0, "-", "version"]], "pyinfra.context": [[20, 1, 1, "", "ContextManager"], [20, 1, 1, "", "ContextObject"], [20, 1, 1, "", "LocalContextObject"], [20, 1, 1, "", "container"], [20, 3, 1, "", "init_base_classes"]], "pyinfra.context.ContextManager": [[20, 4, 1, "", "get"], [20, 4, 1, "", "isset"], [20, 4, 1, "", "reset"], [20, 4, 1, "", "set"], [20, 4, 1, "", "set_base"], [20, 4, 1, "", "use"]], "pyinfra.context.container": [[20, 2, 1, "", "module"]], "pyinfra.local": [[21, 3, 1, "", "include"], [21, 3, 1, "", "shell"]], "pyinfra.progress": [[22, 3, 1, "", "progress_spinner"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:function", "4": "py:method", "5": "py:exception", "6": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "function", "Python function"], "4": ["py", "method", "Python method"], "5": ["py", "exception", "Python exception"], "6": ["py", "property", "Python property"]}, "titleterms": {"write": [0, 3], "connector": [0, 10, 27, 28, 29, 30, 31, 32, 33, 34], "inventori": [0, 15, 25, 41, 89, 133], "execut": [0, 24, 25, 40], "packag": [1, 25, 90, 91, 92, 93, 95, 96, 97, 100, 101, 107, 109, 110, 111, 112, 119, 120, 126, 127, 129], "deploi": [1, 11, 37, 40, 86, 87], "exampl": [1, 2, 3, 25, 32, 37, 133], "global": [1, 24, 89, 133], "argument": [1, 3, 5, 24, 25, 89, 133], "data": [1, 29, 32, 39, 41, 89, 133], "us": [2, 3, 25, 36, 43, 85, 87, 133], "api": [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "fact": [3, 13, 36, 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, 133], "oper": [3, 16, 17, 24, 25, 26, 36, 85, 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, 133], "input": 3, "output": [3, 133], "command": [3, 7, 25, 75, 86, 121], "manag": [3, 25, 117], "file": [3, 54, 85, 89, 99, 133], "import": 3, "get": [3, 85, 86, 99, 131], "swap": 3, "statu": 3, "list": 3, "directori": [3, 54, 85, 99], "ani": 3, "from": [3, 26], "refer": [4, 87], "core": 4, "pyinfra": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 36, 43, 86, 87], "modul": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26], "arguments_typ": 6, "config": [8, 102, 133], "connect": [9, 89], "except": 12, "host": [14, 36, 85, 89, 133], "state": [18, 86], "util": 19, "context": 20, "local": [21, 27, 31, 75, 119], "progress": 22, "version": [23, 26], "privileg": [24, 106], "user": [24, 75, 86, 106, 119], "escal": 24, "shell": [24, 25, 119], "control": [24, 26], "featur": 24, "meta": 24, "callback": 24, "strategi": 24, "cli": 25, "option": 25, "verbos": 25, "limit": [25, 89], "ad": [25, 86], "hoc": [25, 86], "debug": 25, "distribut": 25, "servic": [25, 94, 104, 108, 117, 119, 122, 123, 124], "reboot": [25, 119], "addit": 25, "info": 25, "autocomplet": 25, "compat": 26, "system": [26, 90], "editor": 26, "integr": 26, "pycharm": 26, "remot": 26, "upgrad": [26, 91, 92, 93, 109, 112, 126], "0": 26, "x": 26, "1": 26, "renam": 26, "name": [26, 85], "index": [27, 44, 90], "ssh": [27, 32, 121], "docker": [27, 29, 53, 86, 98], "terraform": [27, 33], "chroot": 28, "usag": [28, 29, 30, 31, 33, 34], "avail": [29, 32], "dockerssh": 30, "vagrant": 34, "contribut": [35, 132], "guid": 35, "branch": 35, "dev": 35, "setup": 35, "test": 35, "unit": 35, "end": 35, "gener": 35, "document": [35, 87], "code": 35, "style": 35, "how": [36, 85, 87], "work": [36, 87], "detect": 36, "chang": [36, 133], "order": 36, "when": 36, "doe": 36, "thi": 36, "matter": 36, "check": [35, 36], "client": 38, "side": 38, "asset": 38, "across": 39, "multipl": [39, 133], "environ": 39, "dynam": [40, 41], "dure": 40, "group": [42, 75, 89, 119, 133], "role": [42, 113, 114], "secret": 43, "apk": [45, 91], "apkpackag": 45, "apt": [46, 92], "aptkei": 46, "aptsourc": 46, "brew": [47, 93], "brewcask": 47, "brewpackag": 47, "brewtap": 47, "brewvers": 47, "bsdinit": [48, 94], "rcdstatu": 48, "cargo": [49, 95], "cargopackag": 49, "choco": [50, 96], "chocopackag": 50, "chocovers": 50, "deb": [51, 92], "debarch": 51, "debpackag": 51, "dnf": [52, 97], "dnfrepositori": 52, "dockercontain": 53, "dockerimag": 53, "dockernetwork": 53, "dockersinglemixin": 53, "dockersysteminfo": 53, "block": [54, 99], "finddirectori": 54, "findfil": 54, "findinfil": 54, "findlink": 54, "flag": [54, 99], "link": [54, 85, 99], "md5file": 54, "sha1fil": 54, "sha256fil": 54, "socket": 54, "gem": [56, 101], "gempackag": 56, "git": [57, 102], "gitbranch": 57, "gitconfig": 57, "gittrackingbranch": 57, "gpg": 58, "gpgkei": 58, "gpgsecretkei": 58, "hardwar": 59, "blockdevic": 59, "cpu": 59, "ipv4address": 59, "ipv4addr": 59, "ipv6address": 59, "ipv6addr": 59, "memori": 59, "networkdevic": 59, "iptabl": [60, 103], "ip6tableschain": 60, "ip6tablesrul": 60, "iptableschain": 60, "iptablesrul": 60, "launchd": [61, 104], "launchdstatu": 61, "lxd": [62, 105], "lxdcontain": 62, "mysql": [63, 106], "mysqldatabas": 63, "mysqlusergr": 63, "mysqlus": 63, "npm": [64, 107], "npmpackag": 64, "openrc": [65, 108], "openrcen": 65, "openrcstatu": 65, "pacman": [66, 109], "pacmanpackag": 66, "pacmanunpackgroup": 66, "pip": [67, 88, 110], "pip3packag": 67, "pippackag": 67, "pkg": [68, 111], "pkgpackag": 68, "pkgin": [69, 112], "pkginpackag": 69, "postgr": [70, 113], "postgresdatabas": 70, "postgresrol": 70, "postgresql": [71, 114], "postgresqldatabas": 71, "postgresqlrol": 71, "rpm": [72, 97, 127, 129], "rpmpackag": 72, "rpmpackageprovid": 72, "selinux": [74, 75, 118], "filecontext": 74, "filecontextmap": 74, "seboolean": 74, "seport": 74, "server": [75, 119], "arch": 75, "crontab": [75, 119], "date": 75, "hasgui": 75, "home": 75, "hostnam": [75, 119], "kernel": 75, "kernelmodul": 75, "kernelvers": 75, "linuxdistribut": 75, "linuxgui": 75, "linuxnam": 75, "lsbreleas": 75, "macosvers": 75, "mount": [75, 119, 125], "o": 75, "osvers": 75, "path": 75, "securitylimit": 75, "sysctl": [75, 119], "tmpdir": 75, "which": 75, "snap": [76, 120], "snapbasefact": 76, "snappackag": 76, "systemd": [77, 122], "systemden": 77, "systemdstatu": 77, "sysvinit": [78, 123], "initdstatu": 78, "upstart": [79, 124], "upstartstatu": 79, "vzctl": [80, 125], "openvzcontain": 80, "xbp": [81, 126], "xbpspackag": 81, "yum": [82, 127], "yumrepositori": 82, "zypper": [84, 129], "zypperrepositori": 84, "frequent": 85, "ask": 85, "question": 85, "do": 85, "i": [85, 132], "current": 85, "sudo": 85, "an": [85, 132], "chmod": 85, "chown": 85, "start": [86, 125], "definit": 86, "note": 86, "creat": [86, 125], "instal": [88, 96, 131], "pipx": [], "window": 88, "runtim": 89, "hierarchi": 89, "extern": 89, "sourc": [89, 131], "basic": [2, 90], "languag": 90, "databas": [90, 106, 113, 114], "updat": [91, 92, 93, 97, 109, 112, 126, 127, 129], "stateless": [91, 92, 93, 96, 97, 98, 99, 106, 109, 112, 113, 114, 115, 116, 117, 119, 121, 122, 125, 126, 127, 129], "dist_upgrad": 92, "kei": [92, 97, 127], "ppa": 92, "repo": [92, 97, 102, 127, 129], "cask_upgrad": 93, "cask": 93, "tap": 93, "download": [99, 121], "line": 99, "put": 99, "replac": 99, "rsync": 99, "sync": 99, "templat": 99, "bare_repo": 102, "worktre": 102, "chain": 103, "rule": 103, "contain": [98, 105], "dump": [106, 113, 114], "load": [106, 113, 114], "sql": [106, 113, 114], "venv": 110, "virtualenv": 110, "puppet": 115, "agent": 115, "python": 116, "call": 116, "raise_except": 116, "boolean": 118, "file_context": 118, "file_context_map": 118, "port": 118, "modprob": 119, "script": 119, "script_templ": 119, "security_limit": 119, "user_authorized_kei": 119, "wait": 119, "keyscan": 121, "upload": 121, "daemon_reload": 122, "enabl": 123, "delet": 125, "restart": 125, "set": 125, "stop": 125, "unmount": 125, "perform": 130, "serif": 131, "pro": 131, "instruct": 131, "involv": 131, "further": 131, "inform": 131, "help": 132, "support": 132, "think": 132, "ve": 132, "got": 132, "bug": 132, "have": 132, "idea": 132, "d": 132, "like": 132, "The": 133, "object": 133, "nest": 133, "includ": 133, "enforc": 133, "requir": 133, "type": 35, "dockervolum": 53, "runit": [73, 117], "runitmanag": 73, "runitstatu": 73, "imag": 98, "network": 98, "prune": 98, "volum": [83, 98, 128], "auto": 117, "wait_runsv": 117, "flatpak": [55, 100], "flatpakbasefact": 55, "flatpakpackag": 55, "zf": [83, 128], "dataset": [83, 128], "filesystem": [83, 128], "pool": 83, "snapshot": [83, 128], "pyproject": 0, "toml": 0, "full": 2, "localhost": 2, "2": 26, "3": 26}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Writing Connectors": [[0, "writing-connectors"]], "Inventory Connector": [[0, "inventory-connector"]], "Executing Connector": [[0, "executing-connector"]], "pyproject.toml": [[0, "pyproject-toml"]], "Packaging Deploys": [[1, "packaging-deploys"]], "Examples": [[1, "examples"], [32, "examples"], [133, "examples"]], "Global Arguments": [[1, "global-arguments"], [24, "global-arguments"], [133, "global-arguments"]], "Data in Deploys": [[1, "data-in-deploys"]], "Using the API": [[2, "using-the-api"]], "Full Example": [[2, "full-example"]], "Basic Localhost Example": [[2, "basic-localhost-example"]], "Writing Facts & Operations": [[3, "writing-facts-operations"]], "Operations": [[3, "operations"]], "Input: arguments": [[3, "input-arguments"]], "Output: commands": [[3, "output-commands"]], "Example: managing files": [[3, "example-managing-files"]], "Facts": [[3, "facts"]], "Importing & Using Facts": [[3, "importing-using-facts"]], "Example: getting swap status": [[3, "example-getting-swap-status"]], "Example: getting the list of files in a directory": [[3, "example-getting-the-list-of-files-in-a-directory"]], "Example: getting any output from a command": [[3, "example-getting-any-output-from-a-command"]], "API Reference": [[4, "api-reference"]], "Core API": [[4, null]], "pyinfra.api.arguments module": [[5, "module-pyinfra.api.arguments"]], "pyinfra.api.arguments_typed module": [[6, "module-pyinfra.api.arguments_typed"]], "pyinfra.api.command module": [[7, "module-pyinfra.api.command"]], "pyinfra.api.config module": [[8, "module-pyinfra.api.config"]], "pyinfra.api.connect module": [[9, "module-pyinfra.api.connect"]], "pyinfra.api.connectors module": [[10, "module-pyinfra.api.connectors"]], "pyinfra.api.deploy module": [[11, "module-pyinfra.api.deploy"]], "pyinfra.api.exceptions module": [[12, "module-pyinfra.api.exceptions"]], "pyinfra.api.facts module": [[13, "module-pyinfra.api.facts"]], "pyinfra.api.host module": [[14, "module-pyinfra.api.host"]], "pyinfra.api.inventory module": [[15, "module-pyinfra.api.inventory"]], "pyinfra.api.operation module": [[16, "module-pyinfra.api.operation"]], "pyinfra.api.operations module": [[17, "module-pyinfra.api.operations"]], "pyinfra.api.state module": [[18, "module-pyinfra.api.state"]], "pyinfra.api.util module": [[19, "module-pyinfra.api.util"]], "pyinfra.context module": [[20, "module-pyinfra.context"]], "pyinfra.local module": [[21, "module-pyinfra.local"]], "pyinfra.progress module": [[22, "module-pyinfra.progress"]], "pyinfra.version module": [[23, "module-pyinfra.version"]], "Privilege & user escalation": [[24, "privilege-user-escalation"]], "Shell control & features": [[24, "shell-control-features"]], "Operation meta & callbacks": [[24, "operation-meta-callbacks"]], "Execution strategy": [[24, "execution-strategy"]], "Using the CLI": [[25, "using-the-cli"]], "CLI arguments & options": [[25, "cli-arguments-options"]], "Verbosity": [[25, "verbosity"]], "Inventory": [[25, "inventory"]], "Limit": [[25, "limit"]], "Ad-hoc command execution": [[25, "ad-hoc-command-execution"]], "Example: debugging distributed services using pyinfra": [[25, "example-debugging-distributed-services-using-pyinfra"]], "Executing ad-hoc operations": [[25, "executing-ad-hoc-operations"]], "Example: managing packages with ad-hoc pyinfra commands": [[25, "example-managing-packages-with-ad-hoc-pyinfra-commands"]], "Example: managing services with ad-hoc pyinfra commands": [[25, "example-managing-services-with-ad-hoc-pyinfra-commands"]], "Example: rebooting with ad-hoc pyinfra commands": [[25, "example-rebooting-with-ad-hoc-pyinfra-commands"]], "Additional debug info": [[25, "additional-debug-info"]], "Shell Autocompletion": [[25, "shell-autocompletion"]], "Compatibility": [[26, "compatibility"]], "pyinfra Versions": [[26, "pyinfra-versions"]], "Control Systems": [[26, "control-systems"]], "Editor Integration": [[26, "editor-integration"]], "PyCharm": [[26, "pycharm"]], "Remote Systems": [[26, "remote-systems"]], "Upgrading pyinfra from 2.x -> 3.x": [[26, "upgrading-pyinfra-from-2-x-3-x"]], "Upgrading pyinfra from 1.x -> 2.x": [[26, "upgrading-pyinfra-from-1-x-2-x"]], "Upgrading pyinfra from 0.x -> 1.x": [[26, "upgrading-pyinfra-from-0-x-1-x"]], "Rename the modules module": [[26, "rename-the-modules-module"]], "Naming operations": [[26, "naming-operations"]], "Connectors Index": [[27, "connectors-index"]], "@ssh Connector": [[27, null], [32, "ssh-connector"]], "@docker Connector": [[27, null], [29, "docker-connector"]], "@terraform Connector": [[27, null], [33, "terraform-connector"]], "@local Connector": [[27, null], [31, "local-connector"]], "@chroot Connector": [[28, "chroot-connector"]], "Usage": [[28, "usage"], [29, "usage"], [30, "usage"], [31, "usage"], [33, "usage"], [34, "usage"]], "Available Data": [[29, "available-data"], [32, "available-data"]], "@dockerssh Connector": [[30, "dockerssh-connector"]], "@vagrant Connector": [[34, "vagrant-connector"]], "Contributing": [[35, "contributing"]], "Guides": [[35, "guides"]], "Branches": [[35, "branches"]], "Dev Setup": [[35, "dev-setup"]], "Code Style & Type Checking": [[35, "code-style-type-checking"]], "Tests": [[35, "tests"]], "Unit Tests": [[35, "unit-tests"]], "End to End Tests": [[35, "end-to-end-tests"]], "Generate Documentation": [[35, "generate-documentation"]], "How pyinfra Works": [[36, "how-pyinfra-works"], [87, "how-pyinfra-works"]], "How pyinfra Detects Changes & Orders Operations": [[36, "how-pyinfra-detects-changes-orders-operations"]], "When does this matter?": [[36, "when-does-this-matter"]], "Using Host Facts": [[36, "using-host-facts"]], "Checking Operation Changes": [[36, "checking-operation-changes"]], "Example Deploys": [[37, "example-deploys"]], "Client Side Assets": [[38, "client-side-assets"]], "Data Across Multiple Environments": [[39, "data-across-multiple-environments"]], "Dynamic Execution during Deploy": [[40, "dynamic-execution-during-deploy"]], "Dynamic Inventories & Data": [[41, "dynamic-inventories-data"]], "Groups & Roles": [[42, "groups-roles"]], "Using Secrets in pyinfra": [[43, "using-secrets-in-pyinfra"]], "Facts Index": [[44, "facts-index"]], "Apk Facts": [[45, "apk-facts"]], "apk.ApkPackages": [[45, "apk-apkpackages"]], "Apt Facts": [[46, "apt-facts"]], "apt.AptKeys": [[46, "apt-aptkeys"]], "apt.AptSources": [[46, "apt-aptsources"]], "Brew Facts": [[47, "brew-facts"]], "brew.BrewCasks": [[47, "brew-brewcasks"]], "brew.BrewPackages": [[47, "brew-brewpackages"]], "brew.BrewTaps": [[47, "brew-brewtaps"]], "brew.BrewVersion": [[47, "brew-brewversion"]], "Bsdinit Facts": [[48, "bsdinit-facts"]], "bsdinit.RcdStatus": [[48, "bsdinit-rcdstatus"]], "Cargo Facts": [[49, "cargo-facts"]], "cargo.CargoPackages": [[49, "cargo-cargopackages"]], "Choco Facts": [[50, "choco-facts"]], "choco.ChocoPackages": [[50, "choco-chocopackages"]], "choco.ChocoVersion": [[50, "choco-chocoversion"]], "Deb Facts": [[51, "deb-facts"]], "deb.DebArch": [[51, "deb-debarch"]], "deb.DebPackage": [[51, "deb-debpackage"]], "deb.DebPackages": [[51, "deb-debpackages"]], "Dnf Facts": [[52, "dnf-facts"]], "dnf.DnfRepositories": [[52, "dnf-dnfrepositories"]], "Docker Facts": [[53, "docker-facts"]], "docker.DockerContainer": [[53, "docker-dockercontainer"]], "docker.DockerContainers": [[53, "docker-dockercontainers"]], "docker.DockerImage": [[53, "docker-dockerimage"]], "docker.DockerImages": [[53, "docker-dockerimages"]], "docker.DockerNetwork": [[53, "docker-dockernetwork"]], "docker.DockerNetworks": [[53, "docker-dockernetworks"]], "docker.DockerSingleMixin": [[53, "docker-dockersinglemixin"]], "docker.DockerSystemInfo": [[53, "docker-dockersysteminfo"]], "docker.DockerVolume": [[53, "docker-dockervolume"]], "docker.DockerVolumes": [[53, "docker-dockervolumes"]], "Files Facts": [[54, "files-facts"]], "files.Block": [[54, "files-block"]], "files.Directory": [[54, "files-directory"]], "files.File": [[54, "files-file"]], "files.FindDirectories": [[54, "files-finddirectories"]], "files.FindFiles": [[54, "files-findfiles"]], "files.FindInFile": [[54, "files-findinfile"]], "files.FindLinks": [[54, "files-findlinks"]], "files.Flags": [[54, "files-flags"]], "files.Link": [[54, "files-link"]], "files.Md5File": [[54, "files-md5file"]], "files.Sha1File": [[54, "files-sha1file"]], "files.Sha256File": [[54, "files-sha256file"]], "files.Socket": [[54, "files-socket"]], "Flatpak Facts": [[55, "flatpak-facts"]], "flatpak.FlatpakBaseFact": [[55, "flatpak-flatpakbasefact"]], "flatpak.FlatpakPackage": [[55, "flatpak-flatpakpackage"]], "flatpak.FlatpakPackages": [[55, "flatpak-flatpakpackages"]], "Gem Facts": [[56, "gem-facts"]], "gem.GemPackages": [[56, "gem-gempackages"]], "Git Facts": [[57, "git-facts"]], "git.GitBranch": [[57, "git-gitbranch"]], "git.GitConfig": [[57, "git-gitconfig"]], "git.GitTrackingBranch": [[57, "git-gittrackingbranch"]], "Gpg Facts": [[58, "gpg-facts"]], "gpg.GpgKey": [[58, "gpg-gpgkey"]], "gpg.GpgKeys": [[58, "gpg-gpgkeys"]], "gpg.GpgSecretKeys": [[58, "gpg-gpgsecretkeys"]], "Hardware Facts": [[59, "hardware-facts"]], "hardware.BlockDevices": [[59, "hardware-blockdevices"]], "hardware.Cpus": [[59, "hardware-cpus"]], "hardware.Ipv4Addresses": [[59, "hardware-ipv4addresses"]], "hardware.Ipv4Addrs": [[59, "hardware-ipv4addrs"]], "hardware.Ipv6Addresses": [[59, "hardware-ipv6addresses"]], "hardware.Ipv6Addrs": [[59, "hardware-ipv6addrs"]], "hardware.Memory": [[59, "hardware-memory"]], "hardware.NetworkDevices": [[59, "hardware-networkdevices"]], "Iptables Facts": [[60, "iptables-facts"]], "iptables.Ip6tablesChains": [[60, "iptables-ip6tableschains"]], "iptables.Ip6tablesRules": [[60, "iptables-ip6tablesrules"]], "iptables.IptablesChains": [[60, "iptables-iptableschains"]], "iptables.IptablesRules": [[60, "iptables-iptablesrules"]], "Launchd Facts": [[61, "launchd-facts"]], "launchd.LaunchdStatus": [[61, "launchd-launchdstatus"]], "Lxd Facts": [[62, "lxd-facts"]], "lxd.LxdContainers": [[62, "lxd-lxdcontainers"]], "Mysql Facts": [[63, "mysql-facts"]], "mysql.MysqlDatabases": [[63, "mysql-mysqldatabases"]], "mysql.MysqlUserGrants": [[63, "mysql-mysqlusergrants"]], "mysql.MysqlUsers": [[63, "mysql-mysqlusers"]], "Npm Facts": [[64, "npm-facts"]], "npm.NpmPackages": [[64, "npm-npmpackages"]], "Openrc Facts": [[65, "openrc-facts"]], "openrc.OpenrcEnabled": [[65, "openrc-openrcenabled"]], "openrc.OpenrcStatus": [[65, "openrc-openrcstatus"]], "Pacman Facts": [[66, "pacman-facts"]], "pacman.PacmanPackages": [[66, "pacman-pacmanpackages"]], "pacman.PacmanUnpackGroup": [[66, "pacman-pacmanunpackgroup"]], "Pip Facts": [[67, "pip-facts"]], "pip.Pip3Packages": [[67, "pip-pip3packages"]], "pip.PipPackages": [[67, "pip-pippackages"]], "Pkg Facts": [[68, "pkg-facts"]], "pkg.PkgPackages": [[68, "pkg-pkgpackages"]], "Pkgin Facts": [[69, "pkgin-facts"]], "pkgin.PkginPackages": [[69, "pkgin-pkginpackages"]], "Postgres Facts": [[70, "postgres-facts"]], "postgres.PostgresDatabases": [[70, "postgres-postgresdatabases"]], "postgres.PostgresRoles": [[70, "postgres-postgresroles"]], "Postgresql Facts": [[71, "postgresql-facts"]], "postgresql.PostgresqlDatabases": [[71, "postgresql-postgresqldatabases"]], "postgresql.PostgresqlRoles": [[71, "postgresql-postgresqlroles"]], "Rpm Facts": [[72, "rpm-facts"]], "rpm.RpmPackage": [[72, "rpm-rpmpackage"]], "rpm.RpmPackageProvides": [[72, "rpm-rpmpackageprovides"]], "rpm.RpmPackages": [[72, "rpm-rpmpackages"]], "Runit Facts": [[73, "runit-facts"]], "runit.RunitManaged": [[73, "runit-runitmanaged"]], "runit.RunitStatus": [[73, "runit-runitstatus"]], "Selinux Facts": [[74, "selinux-facts"]], "selinux.FileContext": [[74, "selinux-filecontext"]], "selinux.FileContextMapping": [[74, "selinux-filecontextmapping"]], "selinux.SEBoolean": [[74, "selinux-seboolean"]], "selinux.SEPort": [[74, "selinux-seport"]], "selinux.SEPorts": [[74, "selinux-seports"]], "Server Facts": [[75, "server-facts"]], "server.Arch": [[75, "server-arch"]], "server.Command": [[75, "server-command"]], "server.Crontab": [[75, "server-crontab"]], "server.Date": [[75, "server-date"]], "server.Groups": [[75, "server-groups"]], "server.HasGui": [[75, "server-hasgui"]], "server.Home": [[75, "server-home"]], "server.Hostname": [[75, "server-hostname"]], "server.Kernel": [[75, "server-kernel"]], "server.KernelModules": [[75, "server-kernelmodules"]], "server.KernelVersion": [[75, "server-kernelversion"]], "server.LinuxDistribution": [[75, "server-linuxdistribution"]], "server.LinuxGui": [[75, "server-linuxgui"]], "server.LinuxName": [[75, "server-linuxname"]], "server.Locales": [[75, "server-locales"]], "server.LsbRelease": [[75, "server-lsbrelease"]], "server.MacosVersion": [[75, "server-macosversion"]], "server.Mounts": [[75, "server-mounts"]], "server.Os": [[75, "server-os"]], "server.OsVersion": [[75, "server-osversion"]], "server.Path": [[75, "server-path"]], "server.SecurityLimits": [[75, "server-securitylimits"]], "server.Selinux": [[75, "server-selinux"]], "server.Sysctl": [[75, "server-sysctl"]], "server.TmpDir": [[75, "server-tmpdir"]], "server.User": [[75, "server-user"]], "server.Users": [[75, "server-users"]], "server.Which": [[75, "server-which"]], "Snap Facts": [[76, "snap-facts"]], "snap.SnapBaseFact": [[76, "snap-snapbasefact"]], "snap.SnapPackage": [[76, "snap-snappackage"]], "snap.SnapPackages": [[76, "snap-snappackages"]], "Systemd Facts": [[77, "systemd-facts"]], "systemd.SystemdEnabled": [[77, "systemd-systemdenabled"]], "systemd.SystemdStatus": [[77, "systemd-systemdstatus"]], "Sysvinit Facts": [[78, "sysvinit-facts"]], "sysvinit.InitdStatus": [[78, "sysvinit-initdstatus"]], "Upstart Facts": [[79, "upstart-facts"]], "upstart.UpstartStatus": [[79, "upstart-upstartstatus"]], "Vzctl Facts": [[80, "vzctl-facts"]], "vzctl.OpenvzContainers": [[80, "vzctl-openvzcontainers"]], "Xbps Facts": [[81, "xbps-facts"]], "xbps.XbpsPackages": [[81, "xbps-xbpspackages"]], "Yum Facts": [[82, "yum-facts"]], "yum.YumRepositories": [[82, "yum-yumrepositories"]], "Zfs Facts": [[83, "zfs-facts"]], "zfs.Datasets": [[83, "zfs-datasets"]], "zfs.Filesystems": [[83, "zfs-filesystems"]], "zfs.Pools": [[83, "zfs-pools"]], "zfs.Snapshots": [[83, "zfs-snapshots"]], "zfs.Volumes": [[83, "zfs-volumes"]], "Zypper Facts": [[84, "zypper-facts"]], "zypper.ZypperRepositories": [[84, "zypper-zypperrepositories"]], "Frequently Asked Questions": [[85, "frequently-asked-questions"]], "How do I get the name of the current host?": [[85, "how-do-i-get-the-name-of-the-current-host"]], "How do I use sudo in an operation?": [[85, "how-do-i-use-sudo-in-an-operation"]], "How do I chmod or chown a file/directory/link?": [[85, "how-do-i-chmod-or-chown-a-file-directory-link"]], "Getting Started": [[86, "getting-started"]], "Ad-hoc commands with pyinfra": [[86, "ad-hoc-commands-with-pyinfra"]], "State definitions": [[86, "state-definitions"]], "Note for Docker users": [[86, null]], "Create a Deploy": [[86, "create-a-deploy"]], "pyinfra Documentation": [[87, "pyinfra-documentation"]], "Using pyinfra": [[87, "using-pyinfra"]], "Deploy Reference": [[87, "deploy-reference"]], "Installation": [[88, "installation"]], "Pip": [[88, "pip"]], "Windows": [[88, "windows"]], "Inventory & Data": [[89, "inventory-data"]], "Inventory Files": [[89, "inventory-files"]], "Limiting inventory at runtime": [[89, "limiting-inventory-at-runtime"]], "Host Data": [[89, "host-data"]], "Group Data Files": [[89, "group-data-files"]], "Data Hierarchy": [[89, "data-hierarchy"]], "Connecting with Data": [[89, "connecting-with-data"]], "Global Arguments with Data": [[89, "global-arguments-with-data"]], "External Sources for Data": [[89, "external-sources-for-data"]], "Operations Index": [[90, "operations-index"]], "Basics": [[90, null]], "System Packages": [[90, null]], "Language Packages": [[90, null]], "Databases": [[90, null]], "Apk Operations": [[91, "apk-operations"]], "apk.packages": [[91, "apk-packages"]], "apk.update": [[91, "apk-update"]], "Stateless operation": [[91, null], [91, null], [92, null], [92, null], [92, null], [92, null], [93, null], [93, null], [93, null], [96, null], [97, null], [97, null], [98, null], [98, null], [99, null], [99, null], [106, null], [106, null], [106, null], [109, null], [109, null], [112, null], [112, null], [113, null], [113, null], [113, null], [114, null], [114, null], [114, null], [114, null], [114, null], [115, null], [116, null], [116, null], [117, null], [119, null], [119, null], [119, null], [119, null], [119, null], [121, null], [121, null], [122, null], [125, null], [125, null], [125, null], [125, null], [125, null], [125, null], [125, null], [125, null], [126, null], [126, null], [127, null], [127, null], [129, null]], "apk.upgrade": [[91, "apk-upgrade"]], "Apt Operations": [[92, "apt-operations"]], "apt.deb": [[92, "apt-deb"]], "apt.dist_upgrade": [[92, "apt-dist-upgrade"]], "apt.key": [[92, "apt-key"]], "apt.packages": [[92, "apt-packages"]], "apt.ppa": [[92, "apt-ppa"]], "apt.repo": [[92, "apt-repo"]], "apt.update": [[92, "apt-update"]], "apt.upgrade": [[92, "apt-upgrade"]], "Brew Operations": [[93, "brew-operations"]], "brew.cask_upgrade": [[93, "brew-cask-upgrade"]], "brew.casks": [[93, "brew-casks"]], "brew.packages": [[93, "brew-packages"]], "brew.tap": [[93, "brew-tap"]], "brew.update": [[93, "brew-update"]], "brew.upgrade": [[93, "brew-upgrade"]], "Bsdinit Operations": [[94, "bsdinit-operations"]], "bsdinit.service": [[94, "bsdinit-service"]], "Cargo Operations": [[95, "cargo-operations"]], "cargo.packages": [[95, "cargo-packages"]], "Choco Operations": [[96, "choco-operations"]], "choco.install": [[96, "choco-install"]], "choco.packages": [[96, "choco-packages"]], "Dnf Operations": [[97, "dnf-operations"]], "dnf.key": [[97, "dnf-key"]], "dnf.packages": [[97, "dnf-packages"]], "dnf.repo": [[97, "dnf-repo"]], "dnf.rpm": [[97, "dnf-rpm"]], "dnf.update": [[97, "dnf-update"]], "Docker Operations": [[98, "docker-operations"]], "docker.container": [[98, "docker-container"]], "docker.image": [[98, "docker-image"]], "docker.network": [[98, "docker-network"]], "docker.prune": [[98, "docker-prune"]], "docker.volume": [[98, "docker-volume"]], "Files Operations": [[99, "files-operations"]], "files.block": [[99, "files-block"]], "files.directory": [[99, "files-directory"]], "files.download": [[99, "files-download"]], "files.file": [[99, "files-file"]], "files.flags": [[99, "files-flags"]], "files.get": [[99, "files-get"]], "files.line": [[99, "files-line"]], "files.link": [[99, "files-link"]], "files.put": [[99, "files-put"]], "files.replace": [[99, "files-replace"]], "files.rsync": [[99, "files-rsync"]], "files.sync": [[99, "files-sync"]], "files.template": [[99, "files-template"]], "Flatpak Operations": [[100, "flatpak-operations"]], "flatpak.packages": [[100, "flatpak-packages"]], "Gem Operations": [[101, "gem-operations"]], "gem.packages": [[101, "gem-packages"]], "Git Operations": [[102, "git-operations"]], "git.bare_repo": [[102, "git-bare-repo"]], "git.config": [[102, "git-config"]], "git.repo": [[102, "git-repo"]], "git.worktree": [[102, "git-worktree"]], "Iptables Operations": [[103, "iptables-operations"]], "iptables.chain": [[103, "iptables-chain"]], "iptables.rule": [[103, "iptables-rule"]], "Launchd Operations": [[104, "launchd-operations"]], "launchd.service": [[104, "launchd-service"]], "Lxd Operations": [[105, "lxd-operations"]], "lxd.container": [[105, "lxd-container"]], "Mysql Operations": [[106, "mysql-operations"]], "mysql.database": [[106, "mysql-database"]], "mysql.dump": [[106, "mysql-dump"]], "mysql.load": [[106, "mysql-load"]], "mysql.privileges": [[106, "mysql-privileges"]], "mysql.sql": [[106, "mysql-sql"]], "mysql.user": [[106, "mysql-user"]], "Npm Operations": [[107, "npm-operations"]], "npm.packages": [[107, "npm-packages"]], "Openrc Operations": [[108, "openrc-operations"]], "openrc.service": [[108, "openrc-service"]], "Pacman Operations": [[109, "pacman-operations"]], "pacman.packages": [[109, "pacman-packages"]], "pacman.update": [[109, "pacman-update"]], "pacman.upgrade": [[109, "pacman-upgrade"]], "Pip Operations": [[110, "pip-operations"]], "pip.packages": [[110, "pip-packages"]], "pip.venv": [[110, "pip-venv"]], "pip.virtualenv": [[110, "pip-virtualenv"]], "Pkg Operations": [[111, "pkg-operations"]], "pkg.packages": [[111, "pkg-packages"]], "Pkgin Operations": [[112, "pkgin-operations"]], "pkgin.packages": [[112, "pkgin-packages"]], "pkgin.update": [[112, "pkgin-update"]], "pkgin.upgrade": [[112, "pkgin-upgrade"]], "Postgres Operations": [[113, "postgres-operations"]], "postgres.database": [[113, "postgres-database"]], "postgres.dump": [[113, "postgres-dump"]], "postgres.load": [[113, "postgres-load"]], "postgres.role": [[113, "postgres-role"]], "postgres.sql": [[113, "postgres-sql"]], "Postgresql Operations": [[114, "postgresql-operations"]], "postgresql.database": [[114, "postgresql-database"]], "postgresql.dump": [[114, "postgresql-dump"]], "postgresql.load": [[114, "postgresql-load"]], "postgresql.role": [[114, "postgresql-role"]], "postgresql.sql": [[114, "postgresql-sql"]], "Puppet Operations": [[115, "puppet-operations"]], "puppet.agent": [[115, "puppet-agent"]], "Python Operations": [[116, "python-operations"]], "python.call": [[116, "python-call"]], "python.raise_exception": [[116, "python-raise-exception"]], "Runit Operations": [[117, "runit-operations"]], "runit.auto": [[117, "runit-auto"]], "runit.manage": [[117, "runit-manage"]], "runit.service": [[117, "runit-service"]], "runit.wait_runsv": [[117, "runit-wait-runsv"]], "Selinux Operations": [[118, "selinux-operations"]], "selinux.boolean": [[118, "selinux-boolean"]], "selinux.file_context": [[118, "selinux-file-context"]], "selinux.file_context_mapping": [[118, "selinux-file-context-mapping"]], "selinux.port": [[118, "selinux-port"]], "Server Operations": [[119, "server-operations"]], "server.crontab": [[119, "server-crontab"]], "server.group": [[119, "server-group"]], "server.hostname": [[119, "server-hostname"]], "server.locale": [[119, "server-locale"]], "server.modprobe": [[119, "server-modprobe"]], "server.mount": [[119, "server-mount"]], "server.packages": [[119, "server-packages"]], "server.reboot": [[119, "server-reboot"]], "server.script": [[119, "server-script"]], "server.script_template": [[119, "server-script-template"]], "server.security_limit": [[119, "server-security-limit"]], "server.service": [[119, "server-service"]], "server.shell": [[119, "server-shell"]], "server.sysctl": [[119, "server-sysctl"]], "server.user": [[119, "server-user"]], "server.user_authorized_keys": [[119, "server-user-authorized-keys"]], "server.wait": [[119, "server-wait"]], "Snap Operations": [[120, "snap-operations"]], "snap.package": [[120, "snap-package"]], "Ssh Operations": [[121, "ssh-operations"]], "ssh.command": [[121, "ssh-command"]], "ssh.download": [[121, "ssh-download"]], "ssh.keyscan": [[121, "ssh-keyscan"]], "ssh.upload": [[121, "ssh-upload"]], "Systemd Operations": [[122, "systemd-operations"]], "systemd.daemon_reload": [[122, "systemd-daemon-reload"]], "systemd.service": [[122, "systemd-service"]], "Sysvinit Operations": [[123, "sysvinit-operations"]], "sysvinit.enable": [[123, "sysvinit-enable"]], "sysvinit.service": [[123, "sysvinit-service"]], "Upstart Operations": [[124, "upstart-operations"]], "upstart.service": [[124, "upstart-service"]], "Vzctl Operations": [[125, "vzctl-operations"]], "vzctl.create": [[125, "vzctl-create"]], "vzctl.delete": [[125, "vzctl-delete"]], "vzctl.mount": [[125, "vzctl-mount"]], "vzctl.restart": [[125, "vzctl-restart"]], "vzctl.set": [[125, "vzctl-set"]], "vzctl.start": [[125, "vzctl-start"]], "vzctl.stop": [[125, "vzctl-stop"]], "vzctl.unmount": [[125, "vzctl-unmount"]], "Xbps Operations": [[126, "xbps-operations"]], "xbps.packages": [[126, "xbps-packages"]], "xbps.update": [[126, "xbps-update"]], "xbps.upgrade": [[126, "xbps-upgrade"]], "Yum Operations": [[127, "yum-operations"]], "yum.key": [[127, "yum-key"]], "yum.packages": [[127, "yum-packages"]], "yum.repo": [[127, "yum-repo"]], "yum.rpm": [[127, "yum-rpm"]], "yum.update": [[127, "yum-update"]], "Zfs Operations": [[128, "zfs-operations"]], "zfs.dataset": [[128, "zfs-dataset"]], "zfs.filesystem": [[128, "zfs-filesystem"]], "zfs.snapshot": [[128, "zfs-snapshot"]], "zfs.volume": [[128, "zfs-volume"]], "Zypper Operations": [[129, "zypper-operations"]], "zypper.packages": [[129, "zypper-packages"]], "zypper.repo": [[129, "zypper-repo"]], "zypper.rpm": [[129, "zypper-rpm"]], "zypper.update": [[129, "zypper-update"]], "Performance": [[130, "performance"]], "Source Serif Pro": [[131, "source-serif-pro"]], "Installation instructions": [[131, "installation-instructions"]], "Getting Involved": [[131, "getting-involved"]], "Further information": [[131, "further-information"]], "Help & Support": [[132, "help-support"]], "I think I\u2019ve got a bug!": [[132, "i-think-i-ve-got-a-bug"]], "I have an idea!": [[132, "i-have-an-idea"]], "I\u2019d like to contribute!": [[132, "i-d-like-to-contribute"]], "Using Operations": [[133, "using-operations"]], "The host Object": [[133, "the-host-object"]], "Host & Group Data": [[133, "host-group-data"]], "Host Facts": [[133, "host-facts"]], "The inventory Object": [[133, "the-inventory-object"]], "Operation Changes & Output": [[133, "operation-changes-output"]], "Operation Output": [[133, "operation-output"]], "Nested Operations": [[133, "nested-operations"]], "Include Multiple Files": [[133, "include-multiple-files"]], "The config Object": [[133, "the-config-object"]], "Enforcing Requirements": [[133, "enforcing-requirements"]]}, "indexentries": {"allarguments (class in pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.AllArguments"]], "argumentmeta (class in pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.ArgumentMeta"]], "connectorarguments (class in pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.ConnectorArguments"]], "executionarguments (class in pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.ExecutionArguments"]], "metaarguments (class in pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.MetaArguments"]], "all_global_arguments() (in module pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.all_global_arguments"]], "default (pyinfra.api.arguments.argumentmeta attribute)": [[5, "pyinfra.api.arguments.ArgumentMeta.default"]], "description (pyinfra.api.arguments.argumentmeta attribute)": [[5, "pyinfra.api.arguments.ArgumentMeta.description"]], "generate_env() (in module pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.generate_env"]], "handler (pyinfra.api.arguments.argumentmeta attribute)": [[5, "pyinfra.api.arguments.ArgumentMeta.handler"]], "module": [[5, "module-pyinfra.api.arguments"], [6, "module-pyinfra.api.arguments_typed"], [7, "module-pyinfra.api.command"], [8, "module-pyinfra.api.config"], [9, "module-pyinfra.api.connect"], [10, "module-pyinfra.api.connectors"], [11, "module-pyinfra.api.deploy"], [12, "module-pyinfra.api.exceptions"], [13, "module-pyinfra.api.facts"], [14, "module-pyinfra.api.host"], [15, "module-pyinfra.api.inventory"], [16, "module-pyinfra.api.operation"], [17, "module-pyinfra.api.operations"], [18, "module-pyinfra.api.state"], [19, "module-pyinfra.api.util"], [20, "module-pyinfra.context"], [21, "module-pyinfra.local"], [22, "module-pyinfra.progress"], [23, "module-pyinfra.version"]], "name (pyinfra.api.arguments.allarguments attribute)": [[5, "pyinfra.api.arguments.AllArguments.name"]], "name (pyinfra.api.arguments.metaarguments attribute)": [[5, "pyinfra.api.arguments.MetaArguments.name"]], "pop_global_arguments() (in module pyinfra.api.arguments)": [[5, "pyinfra.api.arguments.pop_global_arguments"]], "pyinfra.api.arguments": [[5, "module-pyinfra.api.arguments"]], "pyinfraoperation (class in pyinfra.api.arguments_typed)": [[6, "pyinfra.api.arguments_typed.PyinfraOperation"]], "pyinfra.api.arguments_typed": [[6, "module-pyinfra.api.arguments_typed"]], "filedownloadcommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.FileDownloadCommand"]], "fileuploadcommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.FileUploadCommand"]], "functioncommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.FunctionCommand"]], "maskstring (class in pyinfra.api.command)": [[7, "pyinfra.api.command.MaskString"]], "pyinfracommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.PyinfraCommand"]], "quotestring (class in pyinfra.api.command)": [[7, "pyinfra.api.command.QuoteString"]], "rsynccommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.RsyncCommand"]], "stringcommand (class in pyinfra.api.command)": [[7, "pyinfra.api.command.StringCommand"]], "connector_arguments (pyinfra.api.command.pyinfracommand attribute)": [[7, "pyinfra.api.command.PyinfraCommand.connector_arguments"]], "execute() (pyinfra.api.command.filedownloadcommand method)": [[7, "pyinfra.api.command.FileDownloadCommand.execute"]], "execute() (pyinfra.api.command.fileuploadcommand method)": [[7, "pyinfra.api.command.FileUploadCommand.execute"]], "execute() (pyinfra.api.command.functioncommand method)": [[7, "pyinfra.api.command.FunctionCommand.execute"]], "execute() (pyinfra.api.command.pyinfracommand method)": [[7, "pyinfra.api.command.PyinfraCommand.execute"]], "execute() (pyinfra.api.command.rsynccommand method)": [[7, "pyinfra.api.command.RsyncCommand.execute"]], "execute() (pyinfra.api.command.stringcommand method)": [[7, "pyinfra.api.command.StringCommand.execute"]], "get_masked_value() (pyinfra.api.command.stringcommand method)": [[7, "pyinfra.api.command.StringCommand.get_masked_value"]], "get_raw_value() (pyinfra.api.command.stringcommand method)": [[7, "pyinfra.api.command.StringCommand.get_raw_value"]], "make_formatted_string_command() (in module pyinfra.api.command)": [[7, "pyinfra.api.command.make_formatted_string_command"]], "obj (pyinfra.api.command.quotestring attribute)": [[7, "pyinfra.api.command.QuoteString.obj"]], "pyinfra.api.command": [[7, "module-pyinfra.api.command"]], "connect_timeout (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.CONNECT_TIMEOUT"]], "config (class in pyinfra.api.config)": [[8, "pyinfra.api.config.Config"]], "configdefaults (class in pyinfra.api.config)": [[8, "pyinfra.api.config.ConfigDefaults"]], "default_temp_dir (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.DEFAULT_TEMP_DIR"]], "doas (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.DOAS"]], "doas_user (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.DOAS_USER"]], "fail_percent (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.FAIL_PERCENT"]], "ignore_errors (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.IGNORE_ERRORS"]], "parallel (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.PARALLEL"]], "preserve_sudo_env (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.PRESERVE_SUDO_ENV"]], "preserve_su_env (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.PRESERVE_SU_ENV"]], "require_packages (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.REQUIRE_PACKAGES"]], "require_pyinfra_version (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.REQUIRE_PYINFRA_VERSION"]], "shell (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SHELL"]], "sudo (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SUDO"]], "sudo_password (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SUDO_PASSWORD"]], "sudo_user (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SUDO_USER"]], "su_shell (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SU_SHELL"]], "su_user (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.SU_USER"]], "temp_dir (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.TEMP_DIR"]], "use_sudo_login (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.USE_SUDO_LOGIN"]], "use_su_login (pyinfra.api.config.configdefaults attribute)": [[8, "pyinfra.api.config.ConfigDefaults.USE_SU_LOGIN"]], "check_pyinfra_version() (in module pyinfra.api.config)": [[8, "pyinfra.api.config.check_pyinfra_version"]], "check_require_packages() (in module pyinfra.api.config)": [[8, "pyinfra.api.config.check_require_packages"]], "copy() (pyinfra.api.config.config method)": [[8, "pyinfra.api.config.Config.copy"]], "get_current_state() (pyinfra.api.config.config method)": [[8, "pyinfra.api.config.Config.get_current_state"]], "lock_current_state() (pyinfra.api.config.config method)": [[8, "pyinfra.api.config.Config.lock_current_state"]], "pyinfra.api.config": [[8, "module-pyinfra.api.config"]], "reset_locked_state() (pyinfra.api.config.config method)": [[8, "pyinfra.api.config.Config.reset_locked_state"]], "set_current_state() (pyinfra.api.config.config method)": [[8, "pyinfra.api.config.Config.set_current_state"]], "connect_all() (in module pyinfra.api.connect)": [[9, "pyinfra.api.connect.connect_all"]], "disconnect_all() (in module pyinfra.api.connect)": [[9, "pyinfra.api.connect.disconnect_all"]], "pyinfra.api.connect": [[9, "module-pyinfra.api.connect"]], "get_all_connectors() (in module pyinfra.api.connectors)": [[10, "pyinfra.api.connectors.get_all_connectors"]], "get_execution_connector() (in module pyinfra.api.connectors)": [[10, "pyinfra.api.connectors.get_execution_connector"]], "get_execution_connectors() (in module pyinfra.api.connectors)": [[10, "pyinfra.api.connectors.get_execution_connectors"]], "pyinfra.api.connectors": [[10, "module-pyinfra.api.connectors"]], "add_deploy() (in module pyinfra.api.deploy)": [[11, "pyinfra.api.deploy.add_deploy"]], "deploy() (in module pyinfra.api.deploy)": [[11, "pyinfra.api.deploy.deploy"]], "pyinfra.api.deploy": [[11, "module-pyinfra.api.deploy"]], "argumenttypeerror": [[12, "pyinfra.api.exceptions.ArgumentTypeError"]], "connecterror": [[12, "pyinfra.api.exceptions.ConnectError"]], "connectordatatypeerror": [[12, "pyinfra.api.exceptions.ConnectorDataTypeError"]], "deployerror": [[12, "pyinfra.api.exceptions.DeployError"]], "facterror": [[12, "pyinfra.api.exceptions.FactError"]], "facttypeerror": [[12, "pyinfra.api.exceptions.FactTypeError"]], "factvalueerror": [[12, "pyinfra.api.exceptions.FactValueError"]], "inventoryerror": [[12, "pyinfra.api.exceptions.InventoryError"]], "noconnectorerror": [[12, "pyinfra.api.exceptions.NoConnectorError"]], "nogrouperror": [[12, "pyinfra.api.exceptions.NoGroupError"]], "nohosterror": [[12, "pyinfra.api.exceptions.NoHostError"]], "operationerror": [[12, "pyinfra.api.exceptions.OperationError"]], "operationtypeerror": [[12, "pyinfra.api.exceptions.OperationTypeError"]], "operationvalueerror": [[12, "pyinfra.api.exceptions.OperationValueError"]], "pyinfraerror": [[12, "pyinfra.api.exceptions.PyinfraError"]], "pyinfra.api.exceptions": [[12, "module-pyinfra.api.exceptions"]], "factbase (class in pyinfra.api.facts)": [[13, "pyinfra.api.facts.FactBase"]], "shortfactbase (class in pyinfra.api.facts)": [[13, "pyinfra.api.facts.ShortFactBase"]], "abstract (pyinfra.api.facts.factbase attribute)": [[13, "pyinfra.api.facts.FactBase.abstract"]], "command (pyinfra.api.facts.factbase attribute)": [[13, "pyinfra.api.facts.FactBase.command"]], "default() (pyinfra.api.facts.factbase static method)": [[13, "pyinfra.api.facts.FactBase.default"]], "fact (pyinfra.api.facts.shortfactbase attribute)": [[13, "pyinfra.api.facts.ShortFactBase.fact"]], "get_fact() (in module pyinfra.api.facts)": [[13, "pyinfra.api.facts.get_fact"]], "get_facts() (in module pyinfra.api.facts)": [[13, "pyinfra.api.facts.get_facts"]], "get_host_fact() (in module pyinfra.api.facts)": [[13, "pyinfra.api.facts.get_host_fact"]], "get_short_facts() (in module pyinfra.api.facts)": [[13, "pyinfra.api.facts.get_short_facts"]], "name (pyinfra.api.facts.factbase attribute)": [[13, "pyinfra.api.facts.FactBase.name"]], "name (pyinfra.api.facts.shortfactbase attribute)": [[13, "pyinfra.api.facts.ShortFactBase.name"]], "process() (pyinfra.api.facts.factbase method)": [[13, "pyinfra.api.facts.FactBase.process"]], "process_data() (pyinfra.api.facts.shortfactbase method)": [[13, "pyinfra.api.facts.ShortFactBase.process_data"]], "process_pipeline() (pyinfra.api.facts.factbase method)": [[13, "pyinfra.api.facts.FactBase.process_pipeline"]], "pyinfra.api.facts": [[13, "module-pyinfra.api.facts"]], "requires_command() (pyinfra.api.facts.factbase method)": [[13, "pyinfra.api.facts.FactBase.requires_command"]], "shell_executable (pyinfra.api.facts.factbase attribute)": [[13, "pyinfra.api.facts.FactBase.shell_executable"]], "host (class in pyinfra.api.host)": [[14, "pyinfra.api.host.Host"]], "hostdata (class in pyinfra.api.host)": [[14, "pyinfra.api.host.HostData"]], "t (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.T"]], "arguments() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.arguments"]], "check_can_rsync() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.check_can_rsync"]], "connect() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.connect"]], "connected (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.connected"]], "connector (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.connector"]], "connector_cls (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.connector_cls"]], "connector_data (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.connector_data"]], "current_deploy_data (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_deploy_data"]], "current_deploy_kwargs (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_deploy_kwargs"]], "current_deploy_name (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_deploy_name"]], "current_op_deploy_data (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_op_deploy_data"]], "current_op_global_arguments (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_op_global_arguments"]], "current_op_hash (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.current_op_hash"]], "deploy() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.deploy"]], "dict() (pyinfra.api.host.hostdata method)": [[14, "pyinfra.api.host.HostData.dict"]], "disconnect() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.disconnect"]], "executing_op_hash (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.executing_op_hash"]], "extract_callable_datas() (in module pyinfra.api.host)": [[14, "pyinfra.api.host.extract_callable_datas"]], "get() (pyinfra.api.host.hostdata method)": [[14, "pyinfra.api.host.HostData.get"]], "get_deploy_data() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.get_deploy_data"]], "get_fact() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.get_fact"]], "get_file() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.get_file"]], "get_temp_filename() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.get_temp_filename"]], "group_data (pyinfra.api.host.host property)": [[14, "pyinfra.api.host.Host.group_data"]], "host_data (pyinfra.api.host.host property)": [[14, "pyinfra.api.host.Host.host_data"]], "in_callback_op (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.in_callback_op"]], "in_deploy (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.in_deploy"]], "in_op (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.in_op"]], "init() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.init"]], "log() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.log"]], "log_styled() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.log_styled"]], "loop() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.loop"]], "loop_position (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.loop_position"]], "nested_executing_op_hash (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.nested_executing_op_hash"]], "noop() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.noop"]], "override_datas (pyinfra.api.host.hostdata attribute)": [[14, "pyinfra.api.host.HostData.override_datas"]], "print_prefix (pyinfra.api.host.host property)": [[14, "pyinfra.api.host.Host.print_prefix"]], "put_file() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.put_file"]], "pyinfra.api.host": [[14, "module-pyinfra.api.host"]], "rsync() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.rsync"]], "run_shell_command() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.run_shell_command"]], "state (pyinfra.api.host.host attribute)": [[14, "pyinfra.api.host.Host.state"]], "style_print_prefix() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.style_print_prefix"]], "when() (pyinfra.api.host.host method)": [[14, "pyinfra.api.host.Host.when"]], "inventory (class in pyinfra.api.inventory)": [[15, "pyinfra.api.inventory.Inventory"]], "empty() (pyinfra.api.inventory.inventory static method)": [[15, "pyinfra.api.inventory.Inventory.empty"]], "extract_name_data() (in module pyinfra.api.inventory)": [[15, "pyinfra.api.inventory.extract_name_data"]], "get_data() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_data"]], "get_group() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_group"]], "get_group_data() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_group_data"]], "get_groups_data() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_groups_data"]], "get_host() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_host"]], "get_host_data() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_host_data"]], "get_override_data() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.get_override_data"]], "iter_activated_hosts() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.iter_activated_hosts"]], "iter_active_hosts() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.iter_active_hosts"]], "len_activated_hosts() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.len_activated_hosts"]], "len_active_hosts() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.len_active_hosts"]], "make_hosts_and_groups() (pyinfra.api.inventory.inventory method)": [[15, "pyinfra.api.inventory.Inventory.make_hosts_and_groups"]], "pyinfra.api.inventory": [[15, "module-pyinfra.api.inventory"]], "state (pyinfra.api.inventory.inventory attribute)": [[15, "pyinfra.api.inventory.Inventory.state"]], "operationmeta (class in pyinfra.api.operation)": [[16, "pyinfra.api.operation.OperationMeta"]], "add_op() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.add_op"]], "attach_args() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.attach_args"]], "changed (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.changed"]], "did_change() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.did_change"]], "did_error() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.did_error"]], "did_not_change() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.did_not_change"]], "did_succeed() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.did_succeed"]], "ensure_shared_op_meta() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.ensure_shared_op_meta"]], "execute_immediately() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.execute_immediately"]], "executed (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.executed"]], "generate_operation_name() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.generate_operation_name"]], "get_operation_name_from_func() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.get_operation_name_from_func"]], "is_complete() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.is_complete"]], "operation() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.operation"]], "pyinfra.api.operation": [[16, "module-pyinfra.api.operation"]], "set_complete() (pyinfra.api.operation.operationmeta method)": [[16, "pyinfra.api.operation.OperationMeta.set_complete"]], "solve_operation_consistency() (in module pyinfra.api.operation)": [[16, "pyinfra.api.operation.solve_operation_consistency"]], "stderr (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.stderr"]], "stderr_lines (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.stderr_lines"]], "stdout (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.stdout"]], "stdout_lines (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.stdout_lines"]], "will_change (pyinfra.api.operation.operationmeta property)": [[16, "pyinfra.api.operation.OperationMeta.will_change"]], "pyinfra.api.operations": [[17, "module-pyinfra.api.operations"]], "run_host_op() (in module pyinfra.api.operations)": [[17, "pyinfra.api.operations.run_host_op"]], "run_ops() (in module pyinfra.api.operations)": [[17, "pyinfra.api.operations.run_ops"]], "basestatecallback (class in pyinfra.api.state)": [[18, "pyinfra.api.state.BaseStateCallback"]], "connect (pyinfra.api.state.statestage attribute)": [[18, "pyinfra.api.state.StateStage.Connect"]], "disconnect (pyinfra.api.state.statestage attribute)": [[18, "pyinfra.api.state.StateStage.Disconnect"]], "execute (pyinfra.api.state.statestage attribute)": [[18, "pyinfra.api.state.StateStage.Execute"]], "prepare (pyinfra.api.state.statestage attribute)": [[18, "pyinfra.api.state.StateStage.Prepare"]], "setup (pyinfra.api.state.statestage attribute)": [[18, "pyinfra.api.state.StateStage.Setup"]], "state (class in pyinfra.api.state)": [[18, "pyinfra.api.state.State"]], "statehostmeta (class in pyinfra.api.state)": [[18, "pyinfra.api.state.StateHostMeta"]], "statehostresults (class in pyinfra.api.state)": [[18, "pyinfra.api.state.StateHostResults"]], "stateoperationhostdata (class in pyinfra.api.state)": [[18, "pyinfra.api.state.StateOperationHostData"]], "stateoperationmeta (class in pyinfra.api.state)": [[18, "pyinfra.api.state.StateOperationMeta"]], "statestage (class in pyinfra.api.state)": [[18, "pyinfra.api.state.StateStage"]], "activate_host() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.activate_host"]], "add_callback_handler() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.add_callback_handler"]], "args (pyinfra.api.state.stateoperationmeta attribute)": [[18, "pyinfra.api.state.StateOperationMeta.args"]], "check_for_changes (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.check_for_changes"]], "command_generator (pyinfra.api.state.stateoperationhostdata attribute)": [[18, "pyinfra.api.state.StateOperationHostData.command_generator"]], "config (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.config"]], "current_deploy_filename (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.current_deploy_filename"]], "current_exec_filename (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.current_exec_filename"]], "current_op_file_number (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.current_op_file_number"]], "current_stage (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.current_stage"]], "cwd (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.cwd"]], "error_ops (pyinfra.api.state.statehostresults attribute)": [[18, "pyinfra.api.state.StateHostResults.error_ops"]], "fail_hosts() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.fail_hosts"]], "get_meta_for_host() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_meta_for_host"]], "get_op_data_for_host() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_op_data_for_host"]], "get_op_meta() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_op_meta"]], "get_op_order() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_op_order"]], "get_results_for_host() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_results_for_host"]], "get_warning_counter() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.get_warning_counter"]], "global_arguments (pyinfra.api.state.stateoperationhostdata attribute)": [[18, "pyinfra.api.state.StateOperationHostData.global_arguments"]], "global_arguments (pyinfra.api.state.stateoperationmeta attribute)": [[18, "pyinfra.api.state.StateOperationMeta.global_arguments"]], "host_before_connect() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.host_before_connect"]], "host_connect() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.host_connect"]], "host_connect_error() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.host_connect_error"]], "host_disconnect() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.host_disconnect"]], "ignored_error_ops (pyinfra.api.state.statehostresults attribute)": [[18, "pyinfra.api.state.StateHostResults.ignored_error_ops"]], "increment_warning_counter() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.increment_warning_counter"]], "init() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.init"]], "initialised (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.initialised"]], "inventory (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.inventory"]], "is_executing (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.is_executing"]], "is_host_in_limit() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.is_host_in_limit"]], "names (pyinfra.api.state.stateoperationmeta attribute)": [[18, "pyinfra.api.state.StateOperationMeta.names"]], "op_hashes (pyinfra.api.state.statehostmeta attribute)": [[18, "pyinfra.api.state.StateHostMeta.op_hashes"]], "op_order (pyinfra.api.state.stateoperationmeta attribute)": [[18, "pyinfra.api.state.StateOperationMeta.op_order"]], "operation_end() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.operation_end"]], "operation_host_error() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.operation_host_error"]], "operation_host_start() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.operation_host_start"]], "operation_host_success() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.operation_host_success"]], "operation_meta (pyinfra.api.state.stateoperationhostdata attribute)": [[18, "pyinfra.api.state.StateOperationHostData.operation_meta"]], "operation_start() (pyinfra.api.state.basestatecallback static method)": [[18, "pyinfra.api.state.BaseStateCallback.operation_start"]], "ops (pyinfra.api.state.statehostmeta attribute)": [[18, "pyinfra.api.state.StateHostMeta.ops"]], "ops (pyinfra.api.state.statehostresults attribute)": [[18, "pyinfra.api.state.StateHostResults.ops"]], "ops_change (pyinfra.api.state.statehostmeta attribute)": [[18, "pyinfra.api.state.StateHostMeta.ops_change"]], "ops_no_change (pyinfra.api.state.statehostmeta attribute)": [[18, "pyinfra.api.state.StateHostMeta.ops_no_change"]], "parent_op_hash (pyinfra.api.state.stateoperationhostdata attribute)": [[18, "pyinfra.api.state.StateOperationHostData.parent_op_hash"]], "partial_ops (pyinfra.api.state.statehostresults attribute)": [[18, "pyinfra.api.state.StateHostResults.partial_ops"]], "pool (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.pool"]], "print_fact_info (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_fact_info"]], "print_fact_input (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_fact_input"]], "print_fact_output (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_fact_output"]], "print_input (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_input"]], "print_noop_info (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_noop_info"]], "print_output (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.print_output"]], "pyinfra.api.state": [[18, "module-pyinfra.api.state"]], "set_op_data_for_host() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.set_op_data_for_host"]], "set_stage() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.set_stage"]], "should_check_for_changes() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.should_check_for_changes"]], "should_raise_failed_hosts (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.should_raise_failed_hosts"]], "stage_warnings (pyinfra.api.state.state attribute)": [[18, "pyinfra.api.state.State.stage_warnings"]], "success_ops (pyinfra.api.state.statehostresults attribute)": [[18, "pyinfra.api.state.StateHostResults.success_ops"]], "trigger_callbacks() (pyinfra.api.state.state method)": [[18, "pyinfra.api.state.State.trigger_callbacks"]], "cache_key (pyinfra.api.util.get_file_io property)": [[19, "pyinfra.api.util.get_file_io.cache_key"]], "filename_or_io (pyinfra.api.util.get_file_io attribute)": [[19, "pyinfra.api.util.get_file_io.filename_or_io"]], "format_exception() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.format_exception"]], "get_call_location() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_call_location"]], "get_caller_frameinfo() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_caller_frameinfo"]], "get_file_io (class in pyinfra.api.util)": [[19, "pyinfra.api.util.get_file_io"]], "get_file_path() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_file_path"]], "get_file_sha1() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_file_sha1"]], "get_kwargs_str() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_kwargs_str"]], "get_operation_order_from_stack() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_operation_order_from_stack"]], "get_path_permissions_mode() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_path_permissions_mode"]], "get_template() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.get_template"]], "log_error_or_warning() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.log_error_or_warning"]], "log_host_command_error() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.log_host_command_error"]], "log_operation_start() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.log_operation_start"]], "make_hash() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.make_hash"]], "memoize() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.memoize"]], "mode (pyinfra.api.util.get_file_io attribute)": [[19, "pyinfra.api.util.get_file_io.mode"]], "print_host_combined_output() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.print_host_combined_output"]], "pyinfra.api.util": [[19, "module-pyinfra.api.util"]], "raise_if_bad_type() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.raise_if_bad_type"]], "sha1_hash() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.sha1_hash"]], "try_int() (in module pyinfra.api.util)": [[19, "pyinfra.api.util.try_int"]], "contextmanager (class in pyinfra.context)": [[20, "pyinfra.context.ContextManager"]], "contextobject (class in pyinfra.context)": [[20, "pyinfra.context.ContextObject"]], "localcontextobject (class in pyinfra.context)": [[20, "pyinfra.context.LocalContextObject"]], "container (class in pyinfra.context)": [[20, "pyinfra.context.container"]], "get() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.get"]], "init_base_classes() (in module pyinfra.context)": [[20, "pyinfra.context.init_base_classes"]], "isset() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.isset"]], "module (pyinfra.context.container attribute)": [[20, "pyinfra.context.container.module"]], "pyinfra.context": [[20, "module-pyinfra.context"]], "reset() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.reset"]], "set() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.set"]], "set_base() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.set_base"]], "use() (pyinfra.context.contextmanager method)": [[20, "pyinfra.context.ContextManager.use"]], "include() (in module pyinfra.local)": [[21, "pyinfra.local.include"]], "pyinfra.local": [[21, "module-pyinfra.local"]], "shell() (in module pyinfra.local)": [[21, "pyinfra.local.shell"]], "progress_spinner() (in module pyinfra.progress)": [[22, "pyinfra.progress.progress_spinner"]], "pyinfra.progress": [[22, "module-pyinfra.progress"]], "pyinfra.version": [[23, "module-pyinfra.version"]]}})
\ No newline at end of file
diff --git a/en/3.x/support.html b/en/3.x/support.html
index a78b652d..1de04529 100644
--- a/en/3.x/support.html
+++ b/en/3.x/support.html
@@ -107,6 +107,8 @@