ich den Zielserver-Umgebung auf der Befehlszeile angeben, z.B .: meine Playbooks laufenMerging gemeinsamen Parameter mit umgebungsspezifischen Parameter in ansible
ansible-playbook -e env=staging playbook.yml
Jetzt habe ich in der Lage sein wollen, Parameter zu liefern, zum Beispiel Wörterbuch von Benutzern auf dem Server auf solche Weise zu erstellen, dass es gemeinsame für alle Umgebungen gibt, und auch Benutzer, die spezifische bis sind, dass eine Umgebung für die ich das Playbook laufen.
Die Verzeichnisstruktur könnte wie folgt aussehen:
├── group_vars
│ ├── all
│ │ ├── users.yml
│ │
│ ├── development
│ │ ├── users.yml
│ │
│ ├── production
│ │ ├── users.yml
│ │
│ └── staging
│ ├── users.yml
Ich dachte zunächst, dass eine Einrichtung wie diese würde die Arbeit machen. Allerdings sind die users.yml
Wörterbücher für jede Umgebung nie mit all/users.yml
fusionierte
ansible-playbook -e env=production playbook.yml
würde nur lesen von production/users.yml
.
Wie kann ich Ansible Merge users.yml
aus bestimmten Umgebungen mit all/users.yml
haben - so dass ich immer die gemeinsamen und env-spezifischen Benutzer erstellt haben?
Mögliches Duplikat (http://stackoverflow.com/questions/35554415/in-ansible-ho w-to-kombinieren-Variablen-von-separaten-Dateien-in-One-Array) – ydaetskcoR