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