Один из моих playbooks содержит задачу, которая устанавливает основные пакеты Python:анзибль: установить несколько пакетов 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
?
Я получаю 'Сообщ: этот модуль требует ключ = значение аргумента ([«имя = virtualenv»,«PSS»,«запросы»,«комментировать-строитель ',' boto ',' ansible ',' uwsgitop ',' gitpull ',' ipython ']). Возможно, что-то не так с строкой списка. –
Необходима пара котировок - обновление вашего ответа. –
О да, я на самом деле протестировал его с синтаксисом многострочного словаря, но сжал его до синтаксиса ярлыка для ответа (которому обычно не нужны кавычки, если только в нем нет пробелов, в зависимости от версии Ansible). Спасибо за исправление. ;) – nitzmahone