Scroll to navigation

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

Run postinst tasks for currently installed packages
Run postinst tasks.
Run postrm tasks.
Run postpurge tasks.
Run tasks for the given packages
Update the configuration from the git repository
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'

Run postinst tasks for the given packages (accepts @filename to read from a file)

Run postrm tasks for the given packages (accepts @filename to read from a file)

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'

Show inventory variables for the given host (default: current host)

Show group inventory graph

GENERAL OPTIONS

show program's version number and exit

config file path

Enable debug mode (also increase verbosity)

Increase verbosity (repeatable, e.g. -vv, -vvv)

Suspend/disable sd-debian execution. Useful for temporarily preventing sd- debian from running.

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.

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.

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.:

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.

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)

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.

Ansible roles. Default subfolder: 'roles'.

Inventory configurations. Default subfolder: 'inventories'.

Location of ansible playbook to execute all the roles.

Ansible filter plugins. Default subfolder: 'plugins/filter'.

Ansible lookup plugins. Default subfolder: 'plugins/lookup'.

Ansible action plugins. Default subfolder: 'plugins/action'.

Ansible callback plugins. Default subfolder: 'plugins/callback'.

Ansible connection plugins. Default subfolder: 'plugins/connection'.

Ansible inventory plugins. Default subfolder: 'plugins/inventory'.

Ansible modules plugins. Default subfolder: 'plugins/modules'.

Ansible strategy plugins. Default subfolder: 'plugins/strategy'.

Ansible vars plugins. Default subfolder: 'plugins/vars'.
2026-11-05 sd-debian 0.3.0