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

shu*_*ji3 11 macos ansible ansible-facts apple-silicon

我正在尝试使用Ansiblefacts来查找机器的架构。

\n

我们可以通过运行命令来收集有关机器的信息ansible -m setup <host-name>,如文档中所述:发现变量:事实和魔术变量 \xe2\x80\x94 Ansible 文档

\n

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

\n
    "ansible_architecture": "x86_64",\n    "ansible_machine": "x86_64",\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
shuuji3@momo mac-dev-playbook\n> ansible -m setup localhost | egrep \'_architecture|_machine\'\n        "ansible_architecture": "arm64",\n        "ansible_machine": "arm64",\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

zig*_*arn 8

根据代码(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更多的是操作系统架构?

  • 我发现在 Rosetta 2 模拟(Intel 模式)下返回了 `x86_64`。另请参阅:/sf/ask/4678744451/ 和 /sf/ask/4617932861/ (2认同)