繁体   English   中英

ansible 动态库存 kubernetes

[英]ansible dynamic inventory kubernetes

我正在尝试在 ansible 中使用 kubernetes 插件,以便能够使用基于我的 k8 集群的动态清单。 我已经关注了这个文档https://docs.ansible.com/ansible/latest/scenario_guides/kubernetes_scenarios/k8s_inventory.html但是我一直遇到解析失败的错误。

# ansible-inventory --list -i k8s.yaml
[WARNING]:  * Failed to parse /etc/ansible/k8s.yaml with ansible_collections.kubernetes.core.plugins.inventory.k8s plugin: Invalid value "kubernetes.core.k8s" for configuration option "plugin_type: inventory
plugin: ansible_collections.kubernetes.core.plugins.inventory.k8s setting: plugin ", valid values are: ['k8s']
[WARNING]: Unable to parse /etc/ansible/k8s.yaml as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
{
    "_meta": {
        "hostvars": {}
    },
    "all": {
        "children": [
            "ungrouped"
        ]
    }
}

从 ansible.cfg 中提取

# egrep -i "\[inventory\]|kubernetes" ansible.cfg
[inventory]
enable_plugins = kubernetes.core.k8s

k8s.yaml

# cat k8s.yaml
plugin: kubernetes.core.k8s

该错误表明kubernetes.core.k8s是无效值,有效值为['k8s'] 但这正是文档中的内容,我尝试了所有更改插件名称的方法,但均未成功。

任何人都可以引导我了解我在这里缺少的东西吗?

所以我设法通过编辑/usr/lib/python3/dist-packages/ansible_collections/kubernetes/core/plugins/inventory/k8s.py让它工作,看来我的版本只将k8s列为k8s名称,我替换为kubernetes.core.k8s并且有效

   options:
      plugin:
         description: token that ensures this is a source file for the 'k8s' plugin.
         required: True
         choices: ['kubernetes.core.k8s']

我确实计划将它作为项目的 PR 提出,但似乎这已经在几个月前更新了,所以我一定只是有过时的文件。

https://github.com/ansible-collections/kubernetes.core/blob/60933457e81fcfa1000f556b2bc3425bbf080602/plugins/inventory/k8s.py#L27

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM