wie laufen mehrere ansible spielt parallel?
Ich habe ein playbook mit mehreren spielt:
---
- hosts: druid-realtime-1
sudo: true
roles:
- { role: druid-realtime, du_rt_id: 1 }
- hosts: druid-realtime-2
sudo: true
roles:
- { role: druid-realtime, du_rt_id: 2 }
Wie sage ich ansible laufen beide Stücke parallel statt nacheinander?
- Sie kann es nicht, aber erklären Sie bitte, warum würden Sie brauchen, um?
- Leistung....
- Frage besser formuliert als: "Wie verarbeiten Sie mehrere hosts für die gleiche Rolle in parallel?". Die aktuelle Frage ist viel allgemeiner, und die Antworten hier präsentieren, nicht die generische Anforderung.
- In der Regel, um die Geschwindigkeit bootstrapping. In der Regel gibt es Website.yaml oder main.yaml die auch viele andere, nicht Verwandte playbooks. Wenn alle diesen nicht playbooks könnten parallel ausgeführt werden, ohne dass die shell-Funktionen für Gabel - /hintergrund, dann wäre es toll.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man es so machen
In Ihrem Ansible Inventar, Gruppe von Servern und weisen Sie einen host-variable:
Dann verweisen Sie auf die variable in das playbook:
Nicht sicher, ob dies möglich war, wenn dieser Beitrag erstellt wurde, aber ich glaube, das ist das, was Sie gesucht haben:
http://docs.ansible.com/ansible/playbooks_async.html
Dies ermöglicht es Ihnen, zu stoppen, die Aufgabe zu blockieren, dh. warten auf die Aufgabe abgeschlossen ist, bevor voran auf die nächste Aufgabe.
Adresse des hosts zusammen (wenn Sie wollen, dass Sie die gleiche Sache zu tun)
Wenn Ihr spielt isoliert sind, können Sie teilen Sie Ihre playbook : 1 Spiel -> 1 playbook. Zum Beispiel:
- hosts: druid-realtime-1
sudo: true
roles:
- { role: druid-realtime, du_rt_id: 1 }
- hosts: druid-realtime-2
sudo: true
roles:
- { role: druid-realtime, du_rt_id: 2 }
- include: druid-realtime-1.yml
- include: druid-realtime-2.yml
Mit diesem Ansatz können Sie ein terminal für jeden playbooks und verwenden weiterhin Ihre Haupt-playbook.