Ansible在json文件中查找单行

时间:2016-06-17 11:06:41

标签: json ansible ansible-playbook

我需要从动态生成的json文件中读取ip行,并将其添加到服务器上的配置文件中。

在Ansible主页上,我找到了两个有用的模块:
- 查找模块
- fileinline模块

然而,查找示例显示使用此短语"{{ lookup('file', '/etc/foo.txt') }}"来查找文件的全部内容 我怎样才能将结果过滤成一行?

有人知道实现这个目标的好方法吗?

1 个答案:

答案 0 :(得分:8)

我猜你可能想要一个JSON词典中的特殊键吗?如果它只是一个无法在JSON结构中访问的随机行,那将很难。您需要在单独的任务中使用grep out。

但是让我们假设你想要一个特殊的dict值,然后你可以将JSON转换为一个带有from_json过滤器的对象:

{{ lookup('file', '/etc/foo.txt') | from_json }}

现在,如果你想从包含的数据结构中获得bar的值,那么这样的东西应该有效:

{{ (lookup('file', '/etc/foo.txt') | from_json).get('bar') }}