Skip to content
Reference

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. !yum and !dnf are two tags for the same YumDnfTask implementation. These pages are regenerated by jetpack 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

ModuleDescription
!groupManage a Linux group via groupadd/groupmod/groupdel/gpasswd. Linux-only.
!userManage a Linux user account via useradd/usermod/userdel. Linux-only.

commands

ModuleDescription
!commandRun a single command on the target directly, without a shell. Safer than !shell (no injection) but no pipes, redirection, or builtins unless unsafe: true.
!externalRun 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.
!shellRun a command through a real shell (default /bin/bash), enabling pipes, redirects, and builtins.

control

ModuleDescription
!assertAbort the play (fail the task) when one or more templated condition expressions evaluate incorrectly.
!debugPrint the host’s current variables (the templating context) for debugging; does not change host state.
!echoLog a templated message to the run output; no host changes.
!factsGather 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.
!failUnconditionally fail the task (and stop the play) with an optional message.
!self_locateIntrospect the target’s virtualization environment (lxc/qemu/pod/physical) and workload ID, saving the result as a host variable map.
!setSet one or more host variables. Top-level string values are template-expanded; non-string values are copied verbatim.
!wait_for_hostPoll the target over SSH until it responds, useful after provisioning VMs/LXCs. Fails on timeout.
!wait_for_httpPoll 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_othersBarrier synchronization point for –async mode; all hosts must reach this task before any proceed past it. Silently skipped in non-async mode.

files

ModuleDescription
!copyCopy a file (or recursively a directory tree) from the control machine to the target. Idempotent via SHA-512 content comparison.
!directoryManage a directory on the target — create, remove, or adjust attributes. Fails if the path is an existing regular file.
!downloadDownload 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.
!fetchRetrieve a file from the target to the control machine (the inverse of copy). dest is optional; content is also exposed via the run result.
!fileManage 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.
!gitClone or update a git repository on the target. Idempotent — compares local HEAD/branch against remote and updates only when needed. SSH key auth only.
!moveMove/rename a file on the target. Optionally backs up an existing destination first. Supports force-overwrite and post-move permission/ownership changes.
!statStat 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.
!templateRender a local template, optionally composing sorted include_dir fragments, and install it atomically on the execution target. Preserve existing file metadata unless explicitly overridden.
!unpackExtract 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.
!xmlEdit explicitly selected XML settings without reserializing unrelated configuration. Install prepared edits atomically through the execution-target connection.

integrations

ModuleDescription
!github_releaseQuery 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.
!httpSend 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

ModuleDescription
!instantiateGenerate 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

ModuleDescription
!aptManage packages with apt-get/dpkg (Debian/Ubuntu). Supports specific versions or local .deb paths, and auto-refreshes the apt cache.
!dnfManage 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).
!homebrewManage packages with Homebrew (brew) on macOS/Linuxbrew. Locates the brew binary automatically (including /opt/homebrew/bin/brew).
!pacmanManage packages with pacman (Arch Linux). Accepts repo/name syntax (strips the repo prefix for queries/removal).
!yumManage 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).
!zypperManage packages with zypper (openSUSE/SUSE). Uses zypper search –details for version comparison.

proxmox

ModuleDescription
!proxmox_lxcManage a Proxmox LXC container via the API (create/remove). Self-signed certs accepted. Idempotent on state.
!proxmox_migrateLive (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_nodePassive/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

ModuleDescription
!sd_serviceManage 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.