Một trong playbooks của tôi có một nhiệm vụ đó cài đặt gói Python cơ bản:Ansible: cài đặt nhiều gói Python trên một phiên duy nhất
---
-
name: "Install Python packages: {{ python_packages_to_install }}"
sudo: true
pip: name={{ item }}
with_items: python_packages_to_install
Với danh sách sau đây của gói:
-
include: python_basics.yaml
vars:
python_packages_to_install:
- virtualenv
- pss
- requests
- comment-builder
- boto
- ansible
- uwsgitop
- gitpull
- ipython
Các công trình công việc một cách chính xác và cài đặt các gói:
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)
Vấn đề là mỗi dòng được thực hiện sử dụng lệnh SSH liên tiếp, thay vì cài đặt tất cả các gói trong một cuộc gọi.
Có cách nào để cài đặt nhiều gói Python trên lệnh Ansible pip
không?
tôi nhận được một 'msg: module này đòi hỏi key = đối số giá trị ([ 'name = virtualenv', 'PSS', 'yêu cầu', 'bình luận-builder ',' boto ',' ansible ',' uwsgitop ',' gitpull ',' ipython ']) '. Một cái gì đó có lẽ là sai với việc xâu chuỗi danh sách. –
Một cặp dấu ngoặc kép là cần thiết - cập nhật câu trả lời của bạn. –
Oh yeah- Tôi thực sự thử nghiệm nó với cú pháp từ điển nhiều dòng, nhưng đè nó xuống cú pháp phím tắt cho câu trả lời (thường không cần dấu ngoặc kép trừ khi có dấu cách, tùy thuộc vào phiên bản Ansible). Cảm ơn bạn đã sửa chữa. ;) – nitzmahone