我想在Ansible角色中添加一个辅助方法。想法是例如在任务中调用此辅助方法,并提供“事实”作为该辅助方法的参数。 helper方法将返回一个字符串和一个将在任务中处理的列表
答案 0 :(得分:1)
是的。
您可以使用script模块,该模块允许您在远程主机上运行脚本。然后,您使用registers处理结果。 只要确保您的脚本在files子文件夹中的角色路径内即可。
例如:
- name: run python script
script: "script.py --argument {{argument}}"
register: output
另一种选择是开发自己的filter,如Zeitounator在评论中所述。这将允许您使用Jinja2模板表达式来调用脚本。在这种情况下,请确保过滤器位于您的角色路径中的filter_plugins子目录内(值得注意的是,在角色中包含自定义过滤器也会使它在调用剧本中可用)。
例如:
- module:
module_argument: "{{ argument | custom_filter}}"