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