首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将库存脚本解析为库存

无法将库存脚本解析为库存
EN

Stack Overflow用户
提问于 2019-03-01 00:09:43
回答 2查看 10.9K关注 0票数 2

我的python脚本动态地查询并生成JSON文件,如下所示:

代码语言:javascript
复制
{
    "all": {
      "hosts": [
        "192.158.1.1"
      ], 
      "vars": {
        "ansible_become_method": "sudo", 
        "ansible_become": "yes"
      }
    }
  }

但是当我执行下面的命令时

代码语言:javascript
复制
ansible -i script.py -m ping 

它发出以下警告消息:

  • 警告无法将/etc/ansible/script.py解析为库存源
  • 警告没有库存被解析,只有隐式本地主机可用。
  • 警告提供的主机列表为空,只有本地主机可用。请注意,隐式localhost与“all”不匹配。

我不知道我错过了什么或错了,因为我是新的动态库存与Ansible。

当我运行ansible-inventory -i script.py --list时,我得到以下响应

代码语言:javascript
复制
{
    "_meta": {
        "hostvars": {}
    }, 
    "all": {
        "children": [
            "ungrouped"
        ]
    }, 
    "ungrouped": {}
}

我的不可信版本是2.7.7

库存插件是脚本

代码语言:javascript
复制
enable_plugins = script

根据史蒂夫的建议更新了运行-v的,给了我更多的建议

代码语言:javascript
复制
 [WARNING]:  * Failed to parse /etc/ansible/newhost.py with script plugin: failed to parse executable inventory script results from /etc/ansible/script.py: Syntax
Error while loading YAML.   mapping values are not allowed in this context  The error appears to have been in '<string>': line 3, column 8, but may be elsewhere in the
file depending on the exact syntax problem.


 File "/usr/lib/python2.7/site-packages/ansible/plugins/inventory/script.py", line 125, in parse
    raise AnsibleError("failed to parse executable inventory script results from {0}: {1}\n{2}".format(path, to_native(e), err))
EN

回答 2

Stack Overflow用户

发布于 2019-12-28 05:26:57

您在python清单脚本的第一行中添加了这样的头吗?

代码语言:javascript
复制
#!/path/to/python
票数 2
EN

Stack Overflow用户

发布于 2019-03-01 00:41:09

您的脚本需要可执行:

代码语言:javascript
复制
$ chmod a+x script.py

请参阅有关使用脚本这里的文档。

您的脚本还必须是接受某些论点

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54936175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档