Spec-Zone.ru › Ansible 2.4

Поддержка Python 3

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

Примечание

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

Примечание

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

Тестирование Python 3 с помощью команд и плейбуков

  • Run Ansible 2.2+ :ref:`from_source
  • Чтобы протестировать Python 3 на контроллере, выполните вашу команду ansible с помощью python3. Например:
python3 /usr/bin/ansible localhost -m ping
python3 /usr/bin/ansible-playbook sample-playbook.yml

Вы также можете установить Ansible с помощью pip для Python3, что сделает запуск по умолчанию /usr/bin/ansible с Python3:

$ virtualenv py3-ansible
$ source ./bin/activate
$ pip3 install ansible
$ ansible --version|grep python
python version = 3.5.3 (default, May 10 2017, 15:05:55) [GCC 6.3.1 20161221 (Red Hat 6.3.1-1)]

Примечание

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

Тестирование поддержки модулей Python 3

  • Установите параметр конфигурации ansible_python_interpreter на /usr/bin/python3. Параметр конфигурации ansible_python_interpreter обычно устанавливается для каждого хоста как переменная инвентаризации, связанная с хостом или группой хостов:
  # Example inventory that makes an alias for localhost that uses python3
  [py3-hosts]
  localhost-py3 ansible_host=localhost ansible_connection=local

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

See the :ref:`inventory documentation <inventory>` for more information.
  • Запустите вашу команду или плейбук:
ansible localhost-py3 -m ping
ansible-playbook sample-playbook.yml

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

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

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

Если вы обнаружите ошибку при тестировании модулей с Python3, вы можете подать отчет об ошибке на проекте 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.4/python_3_support.html

Spec-Zone.ru

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