ansible 收集事实无法检索 ansible_distribution_release(“模块调用在 json 数据之后有垃圾”)

Vin*_*nce 2 ansible ubuntu-20.04

跑步:

ansible -m setup <hostname>
Run Code Online (Sandbox Code Playgroud)

(主机名是 ubuntu 20.04 桌面)

返回警告:

[警告]:在 JSON 数据之后模块调用有垃圾:AttributeError("module 'platform' has no attribute 'dist'")

并且输出不显示任何字段“ansible_distribution_release”。

正如预期的那样,使用此变量的任务失败:

'ansible_distribution_release' 未定义

我可能会错过什么?

编辑:该问题出现在 ansible 2.5.1 中,并通过运行较新版本的 ansible 解决,请参阅已接受的答案。

lar*_*sks 5

我认为您正在运行旧版本的 Ansible。

platform.dist()在 Ansible 中的使用已在2018 年 12 月 10 日提交的 61b1da 中删除。Python 本身在 Python 3.8 中不再支持platform.dist()

使用 Ansible 2.9.16,在setupUbuntu 20.04 系统上运行该模块会产生:

$ ansible all -i 192.168.122.212, -u root -m setup | grep ansible_distribution
        "ansible_distribution": "Ubuntu",
        "ansible_distribution_file_parsed": true,
        "ansible_distribution_file_path": "/etc/os-release",
        "ansible_distribution_file_variety": "Debian",
        "ansible_distribution_major_version": "20",
        "ansible_distribution_release": "focal",
        "ansible_distribution_version": "20.04",
Run Code Online (Sandbox Code Playgroud)