把所有变量都放在自己的模块里?

2024-09-30 01:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我使用我自己的模块:

- get_my_data:
    hostvars: '{{ hostvars }}'

它对所有主机使用配置并收集一些数据。
我可以在这个模块中不使用显式操作得到hostvars吗?在

^{pr2}$

我还使用ansible_facts字典导出新变量。如何通过register导出它们?在

更新: Jinja{{ variables }}hostvarsdict中没有被替换。我如何修复它以给模块提供实际的var?在

更新2:
hostvars: '{{ hostvars | to_json }}'帮助我计算了所有变量

表2.7.1


Tags: 模块数据registerdataget字典varmy
1条回答
网友
1楼 · 发布于 2024-09-30 01:24:10

Can I get hostvars inside this module without explicit actions?

不需要。您需要显式地传入您希望模块可以访问的任何变量。在

How can I export them via register?

通过exit_json方法返回的任何内容都可以在您注册的变量中使用。也就是说,如果你有。。。在

result = {'changed': False, 'my_data': 'test'}
module.exit_json(**result)

…您将在注册变量中找到一个my_data键。在

Jinja {{ variables }} are not replaced inside hostvars dict. How can I fix it to give actual vars to module?

我不认为你能在你的模块里做到这一点。在你的问题中有一个更完整的例子,确切地说明你想做什么,我们也许可以提出解决问题的其他方法。在

相关问题 更多 >

    热门问题