gpt4 book ai didi

ansible - 如何为本地和远程主机设置不同的python解释器

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

用例:

剧本 1

  • 当我们第一次连接到远程主机时,远程主机已经安装了一些 python 版本 - 自动发现功能会找到它
  • 现在我们安装 ansible-docker在远程主机上
  • 从此时起:ansible-docker docs建议使用 ansible_python_interpreter=/usr/bin/env python-docker

  • 剧本 2

    我们再次连接到同一主机,但现在我们必须使用 /usr/bin/env python-docker python 解释器

    做这个的最好方式是什么?

    目前我们设置了 ansible_python_interpreterPlaybook 2 的剧本级别:
    ---
    - name: DaqMon app
    vars:
    - ansible_python_interpreter: "{{ '/usr/bin/env python-docker' }}"

    这是有效的,但这也会改变本地操作的 python 解释器。因此 local actions会失败,因为( python-docker 本地不存在)。
  • 当前的解决方法是明确指定 ansible_python_interpreter在每个单调乏味且容易出错的本地操作上

  • 问题 :
  • 理想的解决方案是,如果我们可以添加 '/usr/bin/env python-docker'作为回退到 interpreter-python-fallback - 但我认为这是不可能的
  • 有没有办法只为远程主机设置 python 解释器 - 并保留本地主机的默认值?
  • 或者是否可以显式覆盖本地主机的python解释器?
  • 最佳答案

    您应该设置 ansible_python_interpreter在主机级别。

    所以是的,可以为 localhost in your inventory 显式设置解释器.

    localhost   ansible_connection=local ansible_python_interpreter=/usr/bin/python

    我假设你也可以使用 set_facthostvars[<host>].ansible_python_interpreter在您的本地主机或 docker 主机上。

    有一个 brillant article about set_fact on hostvars ! ;-P

    关于ansible - 如何为本地和远程主机设置不同的python解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57656073/

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