Ansible tracking
Record Ansible playbook runs on the controller with a callback plugin - plays, tasks, per-host status and output, stored encrypted.
Ghost Shell records Ansible playbook runs on the controller host — the machine running ansible-playbook. Each task's name, module, host, status (ok/changed/failed/unreachable/skipped), output, and rc is captured and stored encrypted in the central store.
Enable the callback plugin
The plugin is installed at /usr/share/ghostshell/ansible/ghostshell.py by the deb/rpm packages.
Per-run, via environment variables:
export ANSIBLE_CALLBACK_PLUGINS=/usr/share/ghostshell/ansible
export ANSIBLE_CALLBACKS_ENABLED=ghostshell
ansible-playbook site.ymlOr persistently, via ansible.cfg:
[defaults]
callback_plugins = /usr/share/ghostshell/ansible
callbacks_enabled = ghostshellBrowse runs
Per-task output is capped at ansible_output_cap bytes (default 8192) — see configuration.
Fail-open
If ghostshell-daemon is unreachable, the run is saved to ~/.local/share/ghostshell/ansible/<runid>.ajsonl and ingested later. The playbook run is never aborted due to Ghost Shell failures.
Limitation
Only controllers with ghostshell installed produce Ansible records. Managed hosts still receive raw Ansible SSH execs — captured by the sshd ForceCommand wrapper if configured, but those carry no task name or status.