python - Ansible callbacks: get the name of the playbook being executed -
i playing ansible callbacks , use name (for example "ansible-test") of playbook being executed within v2_playbook_on_start(self, playbook)
method.
so far, here how code custom callback
class callbackmodule(callbackbase): callback_version = 2.0 callback_type = 'notification' callback_name = 'xxxx' callback_needs_whitelist = true def __init__(self, display=none): super(callbackmodule, self).__init__(display=display) def v2_playbook_on_start(self, playbook): # how playbook name? def v2_playbook_on_stats(self, stats): # ...
i tried several things, nothing works far: playbook._load_playbook_data
, playbook.__module__
and can't find in docs.
how can name?
note: in case, can't use playbook._basedir
edit
some more details clarify point.
so far, structure following:
- ansible-deploy-apache - defaults - main.yml - tasks - main.yml - vars - ...
here, tasks playbook execute defined in tasks/main.yml
.
what playbook._file_name
gives me main.yml
(not content, name) tasks
. have callback method ansible-deploy-apache
instead ansible-deploy-apache
.
you may want try _file_name
:
def v2_playbook_on_start(self, playbook): display.warning('current playbook: {}'.format(playbook._file_name))
writing plugins require reverse engineering :)
context v2_playbook_on_start
.
Comments
Post a Comment