В одном из моих плейбуков есть задача, которая устанавливает базовые пакеты Python:
---
-
name: "Install Python packages: {{ python_packages_to_install }}"
sudo: true
pip: name={{ item }}
with_items: python_packages_to_install
Со следующим списком пакетов:
-
include: python_basics.yaml
vars:
python_packages_to_install:
- virtualenv
- pss
- requests
- comment-builder
- boto
- ansible
- uwsgitop
- gitpull
- ipython
Задача работает корректно и устанавливает пакеты:
TASK: [common | Install Python packages: ['virtualenv', 'pss', 'requests', 'comment-builder', 'boto', 'ansible', 'uwsgitop', 'gitpull', 'ipython']] ***
ok: [push-prod-01] => (item=virtualenv)
ok: [push-prod-01] => (item=pss)
ok: [push-prod-01] => (item=requests)
ok: [push-prod-01] => (item=comment-builder)
ok: [push-prod-01] => (item=boto)
ok: [push-prod-01] => (item=ansible)
ok: [push-prod-01] => (item=uwsgitop)
ok: [push-prod-01] => (item=gitpull)
changed: [push-prod-01] => (item=ipython)
Проблема в том, что каждая строка выполняется последовательной SSH-командой, а не установкой всех пакетов за один вызов.
Есть ли способ установить несколько пакетов Python с помощью команды Ansible pip
?