Как я могу указать версию Python для использования в Ansible playbook? - PullRequest
1 голос
/ 18 октября 2019

Я работаю над проектом, который все еще работает на Python 2. Я пытаюсь использовать Ansible для настройки новых тестовых серверов. Базовая установка Linux, с которой я начинаю, имеет только Python 3, поэтому мне нужна моя самая первая «стартовая» пьеса для использования Python 3, но затем я хочу, чтобы последующие playbook использовали Python 2.

Я могу указать версиюPython в моем файле инвентаря, как это:

[test_server:vars]
ansible_python_interpreter=/usr/bin/python3

[test_server]
test_server.example.com

Но затем мне нужно отредактировать файл инвентаря, чтобы убедиться, что я использую Python 3 для начальной загрузки, а затем отредактировать его снова дляОстальные мои пьесы. Это кажется странным. Я пробовал несколько разных версий изменения ansible_python_interpreter в моих книгах, например,

- hosts: test_server
    ansible_python_interpreter: /usr/bin/python

и

- hosts: test_server
  tasks:
    - name: install pip
      ansible_python_interpreter: /usr/bin/python
      apt:
        name: python-pip

, но ansible жалуется, что

ОШИБКА! 'ansible_python_interpreter' не является допустимым атрибутом для Задачи

Несмотря на то, что https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html говорит, что

Вы по-прежнему можете установить ansible_python_interpreter для определенного пути в любомпеременный уровень (например, в host_vars, в файлах vars, в playbooks и т. д.).

Каков призыв сделать это правильно?

1 Ответ

0 голосов
/ 18 октября 2019
- hosts: test_server
  tasks:
    - name: install pip
      ansible_python_interpreter: /usr/bin/python
      apt:
        name: python-pip

ОШИБКА! 'ansible_python_interpreter' не является допустимым атрибутом для Задачи

Q: «Каков призыв сделать это правильно?»

A: ansible_python_interpreter является переменной и должна быть объявлена ​​как таковая. Например, в объеме задачи

- hosts: test_server
  tasks:
    - name: install pip
      apt:
        name: python-pip
      vars:
        ansible_python_interpreter: /usr/bin/python

, или в объеме пьесы

- hosts: test_server
  vars:
    ansible_python_interpreter: /usr/bin/python
  tasks:
    - name: install pip
      apt:
        name: python-pip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...