Skip to content

Files

Latest commit

 

History

History
51 lines (36 loc) · 1.58 KB

faq.rst

File metadata and controls

51 lines (36 loc) · 1.58 KB

Frequently Asked Questions

How do I get the name of the current host?

The currently executing host can be fetched from the host context variable. If you need the hostname the server.Hostname fact can be used to get that:

# Get the name of the host as defined in the inventory
from pyinfra import host
name = host.name

# Get the actual current hostname from the host
from pyinfra.facts.server import Hostname
hostname = host.get_fact(Hostname)

How do I use sudo in an operation?

Sudo is controlled by one of the privilege and user escalation arguments, there are a number of additional arguments to control sudo execution:

apt.packages(
    packages=["iftop"],
    _sudo=True,
    _sudo_user="someuser",    # sudo to this user
    _use_sudo_login=True,     # use a login shell when sudo-ing
    _preserve_sudo_env=True,  # preserve the environment when sudo-ing
)

How do I chmod or chown a file/directory/link?

Use the LINK files.file, files.directory or files.link operations to set the permissions and ownership of files, directories & links:

files.file(
    path="/etc/default/elasticsearch",
    user="pyinfra",
    group="pyinfra",
    mode=644,
)