配置 ansible 以在远程目标上使用 python3

C. *_*dds 6 ansible

我一直在研究尝试在远程目标上使用 python3,以便针对它们运行 playbook,但是,简单地针对安装了 python3 的目标运行 playbook 失败并显示错误消息:

"/bin/sh: 1: /usr/bin/python: not found\r\n"
Run Code Online (Sandbox Code Playgroud)

在网上寻找这个问题的答案似乎只是讨论在主机上配置 ansible 以使用 python3 而不是远程。是否可以将遥控器配置为使用 python3 而不是 2?

lar*_*sks 7

您可以设置该ansible_python_interpreter变量以告诉 Ansible 使用哪个版本的 Python。您可以像 C. Dodds 在他们的回答中所建议的那样全局设置它,但通常将它设置为每个主机的清单变量更有意义。例如,使用 YAML 清单:

all:
  hosts:
    myhost:
      ansible_python_interpreter: /usr/bin/python3
Run Code Online (Sandbox Code Playgroud)

或者使用 ini 风格的库存:

myhost ansible_python_interpreter=/usr/bin/python3
Run Code Online (Sandbox Code Playgroud)

当然,如果您有多个需要相同配置的主机,您可以设置每个主机组。

这在Ansible 文档中进行了讨论。