gpt4 book ai didi

ansible - 如何指定要在 Ansible 剧本中使用的 Python 版本?

转载 作者:行者123 更新时间:2023-12-04 11:45:24 29 4
gpt4 key购买 nike

我正在处理一个仍在运行 Python 2 的项目。我正在尝试使用 Ansible 来设置新的测试服务器。我开始时的基本 Linux 安装只有 Python 3,所以我需要我的第一个“引导”剧本来使用 Python 3,但是我希望后续的剧本使用 Python 2。

我可以在我的 list 文件中指定 python 的版本,如下所示:

[test_server:vars]
ansible_python_interpreter=/usr/bin/python3

[test_server]
test_server.example.com

但随后我必须编辑 list 文件以确保我使用 Python 3 作为引导剧本,然后再次为我的其余剧本编辑它。这似乎很奇怪。我尝试了几个不同版本的更改 ansible_python_interpreter在我的剧本中,比如
- hosts: test_server
ansible_python_interpreter: /usr/bin/python


- hosts: test_server
tasks:
- name: install pip
ansible_python_interpreter: /usr/bin/python
apt:
name: python-pip

但 ansible 提示说

ERROR! 'ansible_python_interpreter' is not a valid attribute for a Task



即使 https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html

You can still set ansible_python_interpreter to a specific path at any variable level (for example, in host_vars, in vars files, in playbooks, etc.).



正确执行此操作的调用是什么?

最佳答案

问: “正确执行此操作的调用是什么?”

- hosts: test_server
tasks:
- name: install pip
ansible_python_interpreter: /usr/bin/python
apt:
name: python-pip

ERROR! 'ansible_python_interpreter' is not a valid attribute for a Task



A: ansible_python_interpreter 不是 Playbook keyword .这是一个 variable并且必须如此声明。例如在任务范围内
- hosts: test_server
tasks:
- name: install pip
apt:
name: python-pip
vars:
ansible_python_interpreter: /usr/bin/python
,或在剧本的范围内
- hosts: test_server
vars:
ansible_python_interpreter: /usr/bin/python
tasks:
- name: install pip
apt:
name: python-pip
,或在任何其他合适的地方。见 Variable precedence: Where should I put a variable?


  • INTERPRETER_PYTHON
  • INTERPRETER_PYTHON_DISTRO_MAP
  • INTERPRETER_PYTHON_FALLBACK
  • 关于ansible - 如何指定要在 Ansible 剧本中使用的 Python 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58450608/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com