在ansible playbook中包含带有include_vars模块的json文件

时间:2016-05-06 18:17:02

标签: json ansible

include vars module表示可以使用JSON文件加载变量。但是,当我尝试在我的playbook中使用该模块时,我收到YAML语法错误。

---
- hosts: my_hosts
- include_vars: out.json
- tasks:
    command: hostname

语法错误是:

  

ERROR! ' include_vars'不是播放的有效属性

1 个答案:

答案 0 :(得分:5)

如果你看错了,你就会误读它:

  

语法错误是ERROR! 'include_vars'不是Play

的有效属性

你的剧本目前有3个列表项目(在行的开头由-表示为YAML),这些项目都代表在此上下文中播放。

所以Ansible正在阅读你的剧本,其中包含3个单行播放,一个只有一个主机行,一个带有include_vars行,一个带有任务。

相反,你应该只在这里玩一个游戏,你还应该注意在任务中使用模块(例如include_vars)。

所以你的剧本应该是这样的:

---
- hosts: my_hosts
  tasks:
  - name: include vars
    include_vars: out.json

  - name: hostname
    command: hostname

请注意该游戏的tasks属性如何具有自己的列表,每个属性代表另一个任务。