Reference
This section is auto-generated from the source (src/registry/list.rs and src/cli/parser.rs). Don’t edit these pages by hand — run jetpack gen-reference to regenerate, and edit reference.json to add descriptions, examples, or parameter docs.
Notes:
Module tags are the lowercased Task enum variant in src/registry/list.rs.
!yumand!dnfare two tags for the same YumDnfTask implementation. These pages are regenerated byjetpack gen-reference— edit this file, not the pages under docs/content/docs/reference/.Parameter types are derived from how each module uses the field (via the templating helpers in evaluate), not the Rust field type — most fields are Option
in the struct but are really bool/int/path/list/map at runtime. Universal fields name/with/and/retry/delay are documented under Task Modifiers, not repeated per module.
Modules
access
| Module | Description |
|---|---|
!group | Manage a Linux group via groupadd/groupmod/groupdel/gpasswd. Linux-only. |
!user | Manage a Linux user account via useradd/usermod/userdel. Linux-only. |
commands
| Module | Description |
|---|---|
!command | Run a single command on the target directly, without a shell. Safer than !shell (no injection) but no pipes, redirection, or builtins unless unsafe: true. |
!external | Run an external (user-supplied) program module on the target. The module binary is uploaded and invoked with the JSON params piped to stdin; it must emit a YAML/JSON map on stdout. |
!shell | Run a command through a real shell (default /bin/bash), enabling pipes, redirects, and builtins. |
control
| Module | Description |
|---|---|
!assert | Abort the play (fail the task) when one or more templated condition expressions evaluate incorrectly. |
!debug | Print the host’s current variables (the templating context) for debugging; does not change host state. |
!echo | Log a templated message to the run output; no host changes. |
!facts | Gather OS, architecture, and (optionally) facter/ohai facts on the target and store them as host variables (jet_os_type, jet_os_flavor, jet_arch, jet_os_release_). Must run before any jet_ variable is used. See the facts module page for the full variable reference. |
!fail | Unconditionally fail the task (and stop the play) with an optional message. |
!self_locate | Introspect the target’s virtualization environment (lxc/qemu/pod/physical) and workload ID, saving the result as a host variable map. |
!set | Set one or more host variables. Top-level string values are template-expanded; non-string values are copied verbatim. |
!wait_for_host | Poll the target over SSH until it responds, useful after provisioning VMs/LXCs. Fails on timeout. |
!wait_for_http | Poll an HTTP endpoint until it responds (optionally with a specific status code), useful for waiting on an API or service to become ready after boot. Fails on timeout. |
!wait_for_others | Barrier synchronization point for –async mode; all hosts must reach this task before any proceed past it. Silently skipped in non-async mode. |
files
| Module | Description |
|---|---|
!copy | Copy a file (or recursively a directory tree) from the control machine to the target. Idempotent via SHA-512 content comparison. |
!directory | Manage a directory on the target — create, remove, or adjust attributes. Fails if the path is an existing regular file. |
!download | Download a URL to a remote path on the target using curl (must be installed). Not idempotent unless the file is absent — set force to re-fetch. |
!fetch | Retrieve a file from the target to the control machine (the inverse of copy). dest is optional; content is also exposed via the run result. |
!file | Manage the state of a regular file on the target — create/touch, remove, or adjust attributes (owner/group/mode). Fails if the path is a directory. |
!git | Clone or update a git repository on the target. Idempotent — compares local HEAD/branch against remote and updates only when needed. SSH key auth only. |
!move | Move/rename a file on the target. Optionally backs up an existing destination first. Supports force-overwrite and post-move permission/ownership changes. |
!stat | Stat a remote path and save the result (exists, is_dir, mode, owner, group) into a host variable for later use. Read-only; never modifies the target. |
!template | Render a local template, optionally composing sorted include_dir fragments, and install it atomically on the execution target. Preserve existing file metadata unless explicitly overridden. |
!unpack | Extract an archive (tar.gz/tgz/tar.bz2/tar.xz/tar/zip, or single-file gz/bz2/xz) on the target into a destination directory. Source archive must exist on the target. |
!xml | Edit explicitly selected XML settings without reserializing unrelated configuration. Install prepared edits atomically through the execution-target connection. |
integrations
| Module | Description |
|---|---|
!github_release | Query the GitHub release API and store the best-matching release version (semver-parsed) into a host variable. Passive — resolves and records the version string, does not download assets. |
!http | Send a native HTTP(S) request from the controller, using the current host’s templating context. Supports methods, headers, a raw text body, expected status codes, and response capture without curl or a shell. |
inventory
| Module | Description |
|---|---|
!instantiate | Generate inventory host_vars files and group memberships for a fleet of machines (runs on LOCAL inventory). Triggers the provision system by writing a provision block per host. Supports hostname-pattern expansion and round-robin node distribution. |
packages
| Module | Description |
|---|---|
!apt | Manage packages with apt-get/dpkg (Debian/Ubuntu). Supports specific versions or local .deb paths, and auto-refreshes the apt cache. |
!dnf | Manage packages with yum or dnf (RHEL-family). Identical to !yum — both map to YumDnfTask; the backend is auto-detected per host (prefers /usr/bin/dnf, falls back to /usr/bin/yum). |
!homebrew | Manage packages with Homebrew (brew) on macOS/Linuxbrew. Locates the brew binary automatically (including /opt/homebrew/bin/brew). |
!pacman | Manage packages with pacman (Arch Linux). Accepts repo/name syntax (strips the repo prefix for queries/removal). |
!yum | Manage packages with yum or dnf (RHEL-family). Same module as !dnf — the backend is auto-detected per host (prefers /usr/bin/dnf, falls back to /usr/bin/yum). |
!zypper | Manage packages with zypper (openSUSE/SUSE). Uses zypper search –details for version comparison. |
proxmox
| Module | Description |
|---|---|
!proxmox_lxc | Manage a Proxmox LXC container via the API (create/remove). Self-signed certs accepted. Idempotent on state. |
!proxmox_migrate | Live (online) or offline migration of a Proxmox VM or LXC guest from a source node to a target node. Blocks until the migration task completes or times out. |
!proxmox_node | Passive/read-only query of Proxmox node status (uptime, load, memory, CPU), optionally with cluster quorum and VM/LXC lists. Saves a JSON blob into a host variable. |
services
| Module | Description |
|---|---|
!sd_service | Manage a systemd service’s enabled/started state via systemctl. Conflicts (started:false + restart:true) fail; restart without started implies start-if-stopped. |
Command line
See CLI reference for modes and flags.