table of contents
- NAME
- SYNOPSIS
- DESCRIPTION
- POSITIONAL ARGUMENTS
- COMMAND 'sd-debian apply'
- COMMAND 'sd-debian install'
- COMMAND 'sd-debian remove'
- COMMAND 'sd-debian purge'
- COMMAND 'sd-debian run'
- OPTIONS 'sd-debian run'
- COMMAND 'sd-debian update'
- COMMAND 'sd-debian show'
- OPTIONS 'sd-debian show'
- GENERAL OPTIONS
- GIT BUNDLES
- ADVANCE ANSIBLE PATHS
- unstable 0.3.0-1
| SD-DEBIAN(1) | Generated Python Manual | SD-DEBIAN(1) |
NAME¶
sd-debian - YAML-driven configuration manager for Debian-based system
SYNOPSIS¶
sd-debian [-h] [-V] [-c CONFIG] [--debug] [-v] [--suspend] [--update] [--lock-timeout SECONDS] [--bundles-git-url URL] [--bundles-git-update-mode MODE] [--bundles-git-update-username USERNAME] [--bundles-git-remove-other] [--roles PATH] [--inventories PATH] [--playbook FILE] [--filter-plugins PATH] [--lookup-plugins PATH] [--action-plugins PATH] [--callback-plugins PATH] [--connection-plugins PATH] [--inventory-plugins PATH] [--modules-plugins PATH] [--strategy-plugins PATH] [--vars-plugins PATH] COMMAND ...
DESCRIPTION¶
Manage and enforce system configurations on Debian-based systems using YAML files and Ansible, ensuring consistency across your fleet during package management operations.
POSITIONAL ARGUMENTS¶
- sd-debian apply
- Run postinst tasks for currently installed packages
- sd-debian install
- Run postinst tasks.
- sd-debian remove
- Run postrm tasks.
- sd-debian purge
- Run postpurge tasks.
- sd-debian run
- Run tasks for the given packages
- sd-debian update
- Update the configuration from the git repository
- sd-debian show
- Show inventory data
COMMAND 'sd-debian apply'¶
usage: sd-debian apply [-h]
COMMAND 'sd-debian install'¶
usage: sd-debian install [-h] pkgname [pkgname ...]
COMMAND 'sd-debian remove'¶
usage: sd-debian remove [-h] pkgname [pkgname ...]
COMMAND 'sd-debian purge'¶
usage: sd-debian purge [-h] pkgname [pkgname ...]
COMMAND 'sd-debian run'¶
usage: sd-debian run [-h] [--install PACKAGES [PACKAGES ...]]
[--remove PACKAGES [PACKAGES ...]]
[--purge PACKAGES [PACKAGES ...]]
OPTIONS 'sd-debian run'¶
- --install PACKAGES [PACKAGES ...]
- Run postinst tasks for the given packages (accepts @filename to read from a file)
- --remove PACKAGES [PACKAGES ...]
- Run postrm tasks for the given packages (accepts @filename to read from a file)
- --purge PACKAGES [PACKAGES ...]
- Run postpurge tasks for the given packages (accepts @filename to read from a file)
COMMAND 'sd-debian update'¶
usage: sd-debian update [-h]
COMMAND 'sd-debian show'¶
usage: sd-debian show [-h] [--host [HOSTNAME] | --groups]
OPTIONS 'sd-debian show'¶
- --host [HOSTNAME]
- Show inventory variables for the given host (default: current host)
- --groups
- Show group inventory graph
GENERAL OPTIONS¶
- -V, --version
- show program's version number and exit
- -c CONFIG, --config CONFIG
- config file path
- --debug
- Enable debug mode (also increase verbosity)
- -v, --verbose
- Increase verbosity (repeatable, e.g. -vv, -vvv)
- --suspend
- Suspend/disable sd-debian execution. Useful for temporarily preventing sd- debian from running.
- --update, -U
- Before running, update all configured git bundles as if `update` had been invoked first. If the update fails, the command aborts without applying any tasks.
- --lock-timeout SECONDS
- Maximum time in seconds to wait for another running instance to release the process lock before giving up. Use -1 to wait indefinitely, or 0 to fail immediately if the lock is held. (default: 60)
GIT BUNDLES¶
Options for managing configuration bundles fetched from remote Git repositories. Each bundle is cloned into /var/lib/sd-debian/bundles/<bundlename>/ and kept up to date by `update` according to --bundles-git-update-mode. WARNING: depending on the selected mode, updating a bundle may discard local modifications, untracked files, or even delete and re-clone the bundle directory entirely -- see --bundles-git-update-mode and --bundles-git-remove-other below for details.
- --bundles-git-url URL
- Git repository URL of a configuration bundle to fetch. May be given multiple times to manage several bundles. Supports <giturl>@<gitref>, where <gitref> is an optional tag, branch, or commit hash, e.g.: git+https://example.com/my- user/sd-debian-config@main . By default, the bundle name is the basename of the URL; override it with a ?name=<bundlename> suffix, e.g.:
- --bundles-git-update-mode MODE
- How each bundle is refreshed by `update`, unless overridden per bundle. safe (default) -- never discard local changes; abort with an error instead of overwriting anything. relax -- remove untracked files and fast-forward pull, but never rewrite or discard committed history. force -- fully reproduce the configured bundle state, discarding any local commits, modifications, or untracked files as needed.
- --bundles-git-update-username USERNAME
- Username of the unprivileged system account used to run git operations (e.g. clone/fetch/pull) when this program is executed as root. Git operations are never run as root directly to avoid security issues from untrusted repository content (hooks, config, attributes, etc.). The specified user must already exist on the system and have write access to the bundles working directory. Ignored if the program is not running as root. (default: _sd-debian)
- --bundles-git-remove-other
- After updating, delete any subdirectory of /var/lib/sd-debian/bundles that does not correspond to a currently configured --bundles-git-url. Runs regardless of each bundle's update mode. Disabled by default.
ADVANCE ANSIBLE PATHS¶
Colon-separated paths for Ansible resources lookup. By default, each resource type below (roles, inventories, etc.) is looked up in its matching subfolder under '/usr/share/sd-debian/bundles', then '/etc/sd-debian/bundles', and finally the provided git repository (see --bundles-git-url), in that order. Setting any option in this group OVERRIDES its default lookup entirely — only the path(s) you provide will be searched, so be sure to include every location you need.
- --roles PATH
- Ansible roles. Default subfolder: 'roles'.
- --inventories PATH
- Inventory configurations. Default subfolder: 'inventories'.
- --playbook FILE
- Location of ansible playbook to execute all the roles.
- --filter-plugins PATH
- Ansible filter plugins. Default subfolder: 'plugins/filter'.
- --lookup-plugins PATH
- Ansible lookup plugins. Default subfolder: 'plugins/lookup'.
- --action-plugins PATH
- Ansible action plugins. Default subfolder: 'plugins/action'.
- --callback-plugins PATH
- Ansible callback plugins. Default subfolder: 'plugins/callback'.
- --connection-plugins PATH
- Ansible connection plugins. Default subfolder: 'plugins/connection'.
- --inventory-plugins PATH
- Ansible inventory plugins. Default subfolder: 'plugins/inventory'.
- --modules-plugins PATH
- Ansible modules plugins. Default subfolder: 'plugins/modules'.
- --strategy-plugins PATH
- Ansible strategy plugins. Default subfolder: 'plugins/strategy'.
- --vars-plugins PATH
- Ansible vars plugins. Default subfolder: 'plugins/vars'.
| 2026-11-05 | sd-debian 0.3.0 |