Spec-Zone.ru › Ansible 2.11

Поддержка Python 3

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

Примечание

На контроллере поддерживаются Python 3.5 или выше и Python 2.7 или выше. На стороне модулей поддерживаются Python 3.5 или выше и Python 2.6 или выше.

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

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

$ 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 Запуск ansible-base из исходного кода (devel) и хотите использовать 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 на управляемых машинах с командами и playbook

  • 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

См. также

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

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

Обратите внимание, что вы также можете использовать опцию командной строки -e для ручного задания интерпретатора python при выполнении команды. Это может быть полезно, если вы хотите проверить, есть ли какие-либо ошибки в определенном модуле или playbook под 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 в отчете об ошибке, чтобы соответствующие люди обратили на него внимание.

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

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

Spec-Zone.ru

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