The debops exec command

The debops exec command will run the ansible command inside of the DebOps project directory with its context - environment variables defined in the configuration, unlocked ansible/secret/ directory and with the ansible.cfg configuration file used by the project, which points to the Ansible inventory.

debops exec

Execute an Ansible module against the Ansible inventory. The ansible.builtin.command module is used by default, a different module can be specified with the -m or --module-name parameter.

The debops exec command will automatically unlock and lock the encrypted ansible/secret/ directory as needed, to give the Ansible module access to secrets.

Options

The options below need to be specified before any Ansible arguments to take effect.

-h, --help

Display the help and usage information

--project-dir <project_dir>

Path to the project directory to work on. If it's not specified, the script will use the current directory.

-V <view>, --view <view>

Specify the name of the "infrastructure view" to use for running Ansible commands. If not specified, the default view will be used automatically. Using this option overrides the automatic view detection performed by DebOps based on the current working directory.

-E, --bell

Emit an ASCII "bell" at the end of the ansible command execution to notify the user. This might be useful during longer module runs.

--eval

Do not execute ansible command; instead print out all the environment variables and the command itself to stdout.

-v, --verbose

Increase output verbosity. More letters means higher verbosity.

--

Mark the end of the debops exec options. Any of the options after this mark will be passed to the ansible command as-is.

[ansible_args]

You can specify all arguments supported by the ansible command to augment the execution, for example --diff, --check, --become, and so on. See ansible --help for more details.

Examples

Send a ping to all hosts in the Ansible inventory:

debops exec all -m ping

Check what UNIX account is used to run Ansible commands using a specific "infrastructure view":

debops exec -V deployment hostname -a 'whoami'

Perform a full upgrade of a Debian host using APT:

debops exec hostname -m apt -a 'upgrade=full' -b

Reboot all webservers with molly-guard(8) protection, user will be notified at the end of Ansible execution:

debops exec -E webservers -b -m reboot -a 'search_paths=/lib/molly-guard'