Ansible 使用动态清单文件(JSON)运行playbook

Ansible 使用动态清单文件(JSON)运行playbook,ansible,Ansible,我正在使用下面的动态清单文件(JSON)和剧本YML。我不能执行它。得到一个错误。需要你的投入 my_dynamic_inventory --list { "_meta": { "hostvars": { Node_001": { "model_name":"router1", "ansible_user":"xxx", "ansible_passwor

我正在使用下面的动态清单文件(JSON)和剧本YML。我不能执行它。得到一个错误。需要你的投入

my_dynamic_inventory --list
{
    "_meta": {
        "hostvars": {
            Node_001": {
                "model_name":"router1",
                "ansible_user":"xxx",
                "ansible_password":"xxx",
                "ansible_port":"20",
                "ansible_host":"172.xx.xx.xx",
                "snmp_version":"2c",
                "snmp_community":"public",
                "snmp_port":"yyyy",
                "stack_node_num":"5"
                "ansible_network_os":"moduleA"
            }
        },
    },
    "all": {
        "hosts": ["Node_001"]
    }
}
YML文件:

---
- hosts: all
  gather_facts: off
  connection: local
  tasks:
    - name: create vlan entry
      necqx_vlan:
        vlan_id: 194
        name: VLAN1
        state: present
        model: router1
当我用动态清单文件执行剧本时,我得到了下面的错误

[警告]:*无法分析 /路径\到\动态\库存/带有ini插件的动态\库存: /路径\到\动态\库存/动态\库存:1:预期键=值 主机变量赋值,get:--list

文件 “/usr/lib/python2.7/site packages/ansible/plugins/inventory/ini.py”, 第132行,在语法分析中 self._解析(路径、数据)文件“/usr/lib/python2.7/site packages/ansible/plugins/inventory/ini.py”, 第210行,in_parse 主机、端口、变量=self.\u解析\u主机\u定义(行)文件“/usr/lib/python2.7/site packages/ansible/plugins/inventory/ini.py”, 第308行,在主机定义中 self._raise_错误(“预期键=值主机变量分配,获取:%s”%(t))文件 “/usr/lib/python2.7/site packages/ansible/plugins/inventory/ini.py”, 第137行,输入上升错误 raise AnsibleError(“%s:%d:%”(self.\u文件名,self.lineno)+消息)

[警告]:无法分析 /路径\到\动态\库存/作为库存源的动态\库存

[警告]:未分析任何资源清册,只分析了隐式localhost 可用

[警告]:提供的主机列表为空,只有本地主机可用。 请注意,隐式localhost与“all”不匹配

播放[全部] **************************************************************************************************************

跳过:没有匹配的主机


生成的json中似乎有一些输入错误。与其他错误消息一样,给出的消息也非常神秘。我会在这样的情况下验证我的json。请尝试jsonlint cli或联机json验证程序

缺少逗号:

"stack_node_num":"5"
"ansible_network_os":"moduleA"
缺少一个开括号:

 Node_001": {

这是一个路径问题。找不到动态资源清册,如错误中所示

顺便说一下:

您需要更改以下选项:

Node_001": { ... }


基本上你忘记了
”,后来因为你想引用它,你需要得到它的值。(就像变量一样)。

语法有缺陷的静态JSON文件不是“动态清单”“.Ansible告诉过您,
my_dynamic_inventory--list
不是有效的JSON语法。@如果您仍然有问题,Tejas会告诉我们。:)
"Node_001": { ... }