Ansible использует неверную версию Python - PullRequest
0 голосов
/ 16 апреля 2020

Я занимаюсь этой проблемой уже пару дней. Я бегу ansible на малиновом пи. Я сделал Python3 .7 версией по умолчанию Python. Видимо Ansible хочет использовать Python 2.7. Я добавил версию 3.7 в vars в playbook, но это не меняет расположение модуля. Он по-прежнему ищет модули в Python 2.7.

Я не уверен, как сказать Ansible, чтобы использовать 3.7 для всех модулей и интерпретатора.

pi@pi:~ $ python --version
Python 3.7.2
pi@pi:~ $ ansible-playbook vm.yaml -vv
ansible-playbook 2.9.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/pi/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0]
Using /etc/ansible/ansible.cfg as config file
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

PLAYBOOK: vm.yaml *************************************************************************************************************************************
1 plays in vm.yaml

PLAY [localhost] **********************************************************************************************************************************************

TASK [Gathering Facts] ****************************************************************************************************************************************
task path: /home/pi/vm.yaml:12
ok: [localhost]
META: ran handlers

TASK [Gather info about the vmware guest vm] ******************************************************************************************************************
task path: /home/pi/vm.yaml:28
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ModuleNotFoundError: No module named 'pyVim'
fatal: [localhost -> localhost]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (PyVmomi) on pi's Python /usr/bin/python3. Please read module documentation and install in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter"}

PLAY RECAP ****************************************************************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

pi@pi:~ $ 

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Q: "Как заставить Ansible использовать 3,7"

A: Невозможно выбрать Python на контроллере. Какая версия Python используется, зависит от того, как был собран пакет Ansible.

См. INTERPRETER_PYTHON _ * Опции конфигурации, как выбрать Python на удаленных хостах.

0 голосов
/ 16 апреля 2020

Возможно, вам нужно изменить это.

ansible-playbook 2.9.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/pi/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0]

python version определяется как 2.7.16, который вам нужно изменить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...