Spec-Zone.ru › Ansible 2.9

Поддержка 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 работать с 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 из исходного кода (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 в отчете об ошибке, чтобы соответствующие люди обратили на это внимание.

Если вы хотите исправить код и отправить запрос на вытягивание на GitHub, вы можете обратиться к Ansible и Python 3 для получения информации о том, как мы устраняем распространенные проблемы совместимости с Python3 в кодовой базе 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.9/reference_appendices/python_3_support.html

Spec-Zone.ru

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