Spec-Zone.ru › Ansible 2.10

Поддержка 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.

Если вы обнаружите ошибку при работе под Python 3, вы можете отправить отчет об ошибке в проект Ansible на GitHub: https://github.com/ansible/ansible/issues/. Убедитесь, что в отчете об ошибке указано, что это относится к 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.10/reference_appendices/python_3_support.html

Spec-Zone.ru

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