action plugin: modify task_vars?

25 views
Skip to first unread message

Gregory Christy

unread,
Jul 2, 2020, 7:33:47 AM7/2/20
to Ansible Project
Hello everybody,

I have a custom module and would like to set the ansible_python_interpreter variable from within a corresponding action plugin.
This is what I do in the action plugin:

task_vars_modified = task_vars.copy()
task_vars_modified
['ansible_python_interpreter'] = '<path/to/my/python>'
result
= merge_hash(result, self._execute_module(module_args=module_args, task_vars=task_vars_modified))

Unfortunately this has no effect. Using the playbook debugger I can verify that ansible_python_interpreter is not set for the module.
I am sure that the action plugin is called.
What am I doing wrong?
Is it possible at all to modify task_vars? I cannot find an example for this approach.

Background:
My custom module makes use of some python modules. I do not want to install these modules globally so I'm using a virtual environment.
Obviously now the ansible module needs to use the python binary within the virtual environment.
I would like to encapsulate this so that the user does not have to remember to set ansible_python_interpreter each time he uses the module.

Thanks and Regards,
Carsten

Gregory Christy

unread,
Jul 6, 2020, 4:14:05 AM7/6/20
to Ansible Project
Reply all
Reply to author
Forward
0 new messages