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