Интерпретатор Ansible Python показывает другую версию

#python #ansible

#python #ansible

Вопрос:

Я пытаюсь использовать ansible playbook через vagrant. Я хочу, чтобы он использовал python 3x, поэтому я установил: ansible_python_interpreter: "/usr/bin/python3" Но он показывает мне сообщение об ошибке: Ansible requires a minimum of Python2 version 2.6 or Python3 version 3.5. Current version: 3.4.3 когда я проверяю версию ansible с помощью ansible --version , она показывает версию python равной 3.8.5

И если я попытаюсь явно указать версию python: ansible_python_interpreter: "/usr/bin/python3.8" или ansible_python_interpreter: "/usr/local/lib/python3.8" выдает ошибку not found, даже если эти установки python существуют.

Что может быть причиной этой аномалии и как я могу это исправить?

Комментарии:

1. Что head -1 $(which ansible) возвращает? Возможно, вы ansible используете другую установку Python?

2. Он возвращает это #!/usr/bin/env python3

3. Хорошо, тогда он находит интерпретатор на основе PATH . Можете ли вы проверить, что which python3 возвращает? Кроме того, установлена ли у вас одна и та же версия Python на всех ваших целевых машинах?

4. которую возвращает python3 /usr/bin/python3 . Пока нет целевых машин, я просто тестирую скрипт.

5. Вам будет предложено это сделать, потому что узлы, на которых вы запускаете свой playbook, не имеют правильной версии python. Имейте в виду, что Ansible отправляет скрипты python с вашего контроллера на ваши узлы, а затем ваши узлы выполняют эти скрипты python, поэтому вам также нужна правильная версия python на узлах .