我下面有一个游戏,其中包含一个名称中包含变量的任务。
hosts: localhost
connection: local
vars:
a_variable: test
tasks:
- name: this is a task to echo {{ a_variable }}
shell: echo {{ a_variable }}
当在命令行上运行时,标准输出会显示任务名称,其中变量已解析/扩展为其值,即this is a task to echo test
但是,当我尝试使用属性 task.name 或 result._task.name 访问回调插件中的任务名称时,返回的名称是this is a task to echo {{ a_variable }}
其中变量未扩展。
如何获取打印在 stdout 上且变量已展开的任务名称?
模板化任务名称仅在内部可用v2_playbook_on_task_start
.
如果您想在其他方法中使用模板化名称,您应该创建插件范围的列表/字典,在期间填充任务的名称v2_playbook_on_task_start
并在需要时获取它。
完成此操作的最简单方法是使用task._uuid
作为参考(参见配置文件_任务 https://github.com/ansible/ansible/blob/stable-2.3/lib/ansible/plugins/callback/profile_tasks.py插件为例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)