Зачем устанавливать опцию conf "ansible_python_interpreter" в "/ usr / bin / python3" - PullRequest
0 голосов
/ 10 января 2019

Я хочу использовать Python 3.6 с Ansible на управляемых узлах (управляющий узел, я думаю, может использовать все что угодно).

В официальном официальном документе говорится, что для включения python 3.6 на управляемых узлах я должен установить для параметра конфигурации ansible_python_interpreter значение /usr/bin/python3. Эта опция inventory option. Я знаю, что можно установить эту переменную инвентаризации даже при динамическом инвентаризации, но я просто не хочу, чтобы при настройке переменной было так сложно.

Так что я не установил эту опцию, вместо этого я:

  1. Используйте ec2_module для автоматического предоставления aws ec2 ubuntu18.04 (который поставляется с python 3.6 на /usr/bin/python3) (я мог бы также использовать модуль raw для его установки, если он отсутствует)
  2. Используйте модуль raw для создания символической ссылки от /usr/bin/python до /usr/bin/python3

Я попробовал это, и кажется, что если /usr/bin/python настроен на приемлемую версию python (>= 2.7 или >= 3.6), то он должен работать ...

Вопрос: Так какой смысл устанавливать для параметра конфигурации ansible_python_interpreter значение /usr/bin/python3?

1 Ответ

0 голосов
/ 10 января 2019

Вопрос: Так какой смысл устанавливать параметр конфигурации ansible_python_interpreter в / usr / bin / python3?

По умолчанию Ansible всегда будет использовать /usr/bin/python в удаленной системе. Вы устанавливаете ansible_python_interpreter, чтобы указать путь к чему-то, что не /usr/bin/python, если вы хотите, чтобы оно использовало его вместо этого. Конечно, вместо этого вы можете создать символическую ссылку, но:

  • Как это проще, чем задавать переменную инвентаря?
  • Во многих дистрибутивах /usr/bin/python уже существует и является Python 2 и требуется системными инструментами. Его замена сломает вещи.
  • Даже в системах, которые не поставляются с Python 2 по умолчанию, создав символическую ссылку от /usr/bin/python до /usr/bin/python3, вы потенциально нарушили все, что ожидает /usr/bin/python, как Python 2. Это может вас не укусить сейчас но это может удивить вас в будущем.
...