Я работаю над проектом, который все еще работает на 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 и т. д.).
Каков призыв сделать это правильно?