Ansible игнорирует ansible_python_interpreter в качестве параметра командной строки

0

Вопрос

как вы можете видеть из приведенного ниже фрагмента кода, исполняемый файл ansible, похоже, игнорирует переменную ansible_python_interpreter. Не прибегая к файлу инвентаризации (это для конвейера gitlab, основанного на пакере hashicorp, который вызывает ansible), как я мог бы принудить ansible использовать любую имеющуюся у меня версию python? В данном случае это Ubuntu 18.04, поэтому я хочу переключиться с python-2.7 на python-3.6.

Другой связанной с этим причиной может быть тот факт, что ansibles pkg (политика?) всегда устанавливает python-2.7 на bionic.

root@ubuntu18:~# ansible --version
ansible 2.9.27
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.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
  python version = 2.7.17 (default, Feb 27 2021, 15:10:58) [GCC 7.5.0]
root@ubuntu18:~# /usr/bin/python3.6 --version
Python 3.6.9
root@ubuntu18:~# ansible --version -e 'ansible_python_interpreter=/usr/bin/python3.6'
ansible 2.9.27
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.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
  python version = 2.7.17 (default, Feb 27 2021, 15:10:58) [GCC 7.5.0]
root@ubuntu18:~#

Моим последним средством, по-видимому, является установка ansible с использованием pip3, но для этого потребуется значительная переписка как yaml конвейера, так и json упаковщика.

Любая помощь будет очень признательна.

Овации

ansible python python-3.x ubuntu
2021-11-23 17:22:13
1

Лучший ответ

0

Вы не предоставили никаких доказательств того, что параметр игнорируется. ansible_python_intepreter применяется к выполнению модулей на целевых объектах, а не к выполнению самого Ansible.

Процесс управления Ansible всегда использует интерпретатор Python, под которым он был установлен; лучший способ изменить это-изменить процесс установки.

2021-11-23 17:27:15

Ах, "Процесс управления Ansible всегда использует интерпретатор Python, под которым он был установлен;", это объясняет некоторые особенности поведения, которые я видел. Есть идеи, как проверить, под какой версией он был установлен?
U880D

Бежать ansible --version
flowerysong

Там я нашел причину некоторого поведения: ansible python module location = /usr/lib/python2.7/site-packages/ansible. Возможно, нам потребуется следовать Ansible: Как изменить версию python?
U880D

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................