Spec-Zone.ru › Ansible 2.8

Поддержка Python 3

В Ansible 2.5 и выше поддерживается Python 3. До версии 2.5 поддержка Python 3 считалась техническим превью. В этой теме обсуждается, как настроить контроллер и управляемые машины для использования Python 3.

Примечание

Ansible поддерживает только версии Python 3.5 и выше.

На стороне контроллера

Самый простой способ запустить /usr/bin/ansible под Python 3 — установить его с помощью pip версии для Python 3. Это заставит выполнение по умолчанию /usr/bin/ansible выполняться с Python 3:

$ pip3 install ansible
$ ansible --version | grep "python version"
  python version = 3.6.2 (default, Sep 22 2017, 08:28:09) [GCC 7.2.1 20170915 (Red Hat 7.2.1-2)]

Если вы используете Ansible Запуск из исходного кода и хотите использовать Python 3 с вашим исходным кодом, выполните вашу команду с помощью python3. Например:

$ source ./hacking/env-setup
$ python3 $(which ansible) localhost -m ping
$ python3 $(which ansible-playbook) sample-playbook.yml

Примечание

Пакеты отдельных дистрибутивов Linux могут быть упакованы для Python2 или Python3. При запуске из дистрибутивных пакетов вы сможете использовать Ansible только с версией Python, для которой он был установлен. Иногда дистрибутивы предоставляют возможность установки для нескольких версий Python (через отдельный пакет или с помощью команд, выполняемых после установки). Вам необходимо проверить у вашего дистрибутива, относится ли это к вашему случаю.

Использование Python 3 на управляемых машинах с командами и плейбуками

  • Ansible автоматически обнаружит и использует Python 3 на многих платформах, на которых он поставляется. Чтобы явно сконфигурировать интерпретатор Python 3, установите переменную инвентаризации ansible_python_interpreter на уровне группы или хоста в расположении интерпретатора Python 3, например, /usr/bin/python3. Путь к интерпретатору по умолчанию также может быть задан в ansible.cfg.

См. также

Обнаружение интерпретатора для получения дополнительной информации.

# Example inventory that makes an alias for localhost that uses Python3
localhost-py3 ansible_host=localhost ansible_connection=local ansible_python_interpreter=/usr/bin/python3

# Example of setting a group of hosts to use Python3
[py3-hosts]
ubuntu16
fedora27

[py3-hosts:vars]
ansible_python_interpreter=/usr/bin/python3

См. также

Работа с инвентаризацией для получения дополнительной информации.

  • Запустите вашу команду или плейбук:
$ ansible localhost-py3 -m ping
$ ansible-playbook sample-playbook.yml

Обратите внимание, что вы также можете использовать опцию командной строки -e для ручного задания интерпретатора Python при запуске команды. Это может быть полезно, если вы хотите проверить наличие ошибок в определенном модуле или плейбуке под Python 3. Например:

$ ansible localhost -m ping -e 'ansible_python_interpreter=/usr/bin/python3'
$ ansible-playbook sample-playbook.yml -e 'ansible_python_interpreter=/usr/bin/python3'

Что делать, если обнаружена несовместимость

Мы потратили несколько релизов на устранение ошибок и добавление новых тестов, чтобы основные функции Ansible работали как под Python 2, так и под Python 3. Однако ошибки могут существовать в частных случаях, а многие модули, поставляемые с Ansible, поддерживаются сообществом, и не все из них могут быть портированы.

Если вы обнаружите ошибку при работе под Python 3, вы можете отправить отчет об ошибке на проекте Ansible на GitHub. Убедитесь, что вы упомянули Python3 в отчете об ошибке, чтобы соответствующие люди взглянули на него.

Если вы хотите исправить код и отправить запрос на включение изменений на GitHub, вы можете обратиться к Ansible и Python 3 для получения информации о том, как мы исправляем распространенные проблемы совместимости Python 3 в кодовой базе Ansible.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/reference_appendices/python_3_support.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API