Uno dei miei playbooks contiene un compito che installa i pacchetti Python di base:Ansible: installare più pacchetti Python su una singola sessione
---
-
name: "Install Python packages: {{ python_packages_to_install }}"
sudo: true
pip: name={{ item }}
with_items: python_packages_to_install
Con il seguente elenco di pacchetti:
-
include: python_basics.yaml
vars:
python_packages_to_install:
- virtualenv
- pss
- requests
- comment-builder
- boto
- ansible
- uwsgitop
- gitpull
- ipython
attività di Works correttamente e installa i pacchetti:
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)
Il problema è che ogni riga viene eseguita utilizzando un comando SSH consecutivo, invece di installare tutti i pacchetti in una singola chiamata.
C'è un modo per installare più pacchetti Python su un comando Ansible pip
?
ottengo un 'msg: questo modulo richiede chiave = valore argomenti ([ 'name = virtualenv', 'pss', 'richieste', 'Comment-builder ',' boto ',' ansible ',' uwsgitop ',' gitpull ',' ipython ']) '. Probabilmente c'è qualcosa di sbagliato nell'informare la lista. –
È necessaria una coppia di preventivi: aggiornamento della risposta. –
Oh sì, l'ho effettivamente testato con la sintassi del dizionario multilinea, ma lo ho schiacciato alla sintassi di scelta rapida per la risposta (che di solito non ha bisogno delle virgolette a meno che non ci siano spazi, a seconda della versione di Ansible). Grazie per la correzione. ;) – nitzmahone