I have a custom ansible callback that I am writing:
class CallbackModule(CallbackBase):
CALLBACK_VERSION = 2.0
CALLBACK_TYPE = \'aggregate\'
CALLBACK_N
Excellent @techraf helped me figure this out. I needed to capture the Play's Variable Manager:
class CallbackModule(CallbackBase):
CALLBACK_VERSION = 2.0
CALLBACK_TYPE = 'aggregate'
CALLBACK_NAME = 'is'
def v2_playbook_on_play_start(self, play):
self.vm = play.get_variable_manager()
def v2_runner_on_ok(self, result):
host_vars = self.vm.get_vars()['hostvars'][result._host.name]
var_that_i_want = host_vars['var_that_i_want']
You are accessing variables under ansible.inventory
class hence you get only those defined in the inventory.
If you want to access other variables, you need to go through the play's variable manager:
def v2_playbook_on_play_start(self, play):
variable_manager = play.get_variable_manager()
hostvars = variable_manager.get_vars()['hostvars']