Ansible 上的 `ansible_architecture` 和 `ansible_machine` 有什么区别?

What is the difference between `ansible_architecture` and `ansible_machine` on Ansible?

我正在尝试使用 Ansible Facts 查找机器的架构。

我们可以通过运行 ansible -m setup <host-name> 命令收集有关机器的信息。如文档中所述:Discovering variables: facts and magic variables — Ansible Documentation.

ansible_architectureansible_machine 似乎是相同的值。我不确定它们之间的区别。上述文档中的示例显示了以下两个具有相同值的值:

    "ansible_architecture": "x86_64",
    "ansible_machine": "x86_64",

在我的 M1 MacBook 上,结果是这样的:

shuuji3@momo mac-dev-playbook
> ansible -m setup localhost | egrep '_architecture|_machine'
        "ansible_architecture": "arm64",
        "ansible_machine": "arm64",

我们可以互换使用这些值吗?或者它们在另一种情况下可以有其他值吗?

根据代码 (https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/facts/system/platform.py),它几乎总是相同的。

该值在 Solaris、AIX 和 OpenBSD 上可能不同。

我想 ansible_machine 应该是机器架构(platform.machine() https://docs.python.org/3/library/platform.html 的值),而 ansible_architecture 更像是 OS 架构?