Ansible: как изменить Python версию - PullRequest
1 голос
/ 13 января 2020

Пытаясь использовать GNS3 для отработки сценария ansible, существует экземпляр docker, называемый «Автоматизация сети» со встроенным ansible. Однако он все еще использует Python 2.7 в качестве интерпретатора:

root@Network-Automation:~# ansible --version
ansible 2.7.11
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609]

Я понимаю, что могу использовать "ansible -playbook --version -e 'ansible_python_interpreter = / usr / bin / python3' "команда для запуска playbook с Python версия 3, или я могу указать var в playbook:

- name: Common package
  hosts: all
  gather_facts: no
  vars:
    ansible_python_interpreter: /usr/bin/python3
  roles:
    - { role: python, tags: [ init, python, common, addusers] }
...
...

Однако я хотел бы иметь постоянный способ заставить ansible использовать Python3 версия. Как мне этого добиться? Спасибо.

1 Ответ

1 голос
/ 13 января 2020

Ссылаясь на официальные ansible документы -

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

Самый простой способ запустить / usr / bin / ansible в Python 3 - это установить его с Python3 версия пипса. Это заставит по умолчанию / 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 Запуск из источника и хотите использовать Python 3 с проверкой вашего источника , введите команду через python3. Например:


$ source ./hacking/env-setup
$ python3 $(which ansible) localhost -m ping
$ python3 $(which ansible-playbook) sample-playbook.yml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...