Ich habe spezifische Variablen, die basierend auf Schnittmengen von Gruppen in ansible angewendet werden müssen. Wenn sich beispielsweise ein Server sowohl im Startmodus befindet als auch über die Website-Funktion verfügt, kann ich ihn in einem Playbook mit tag_function_website:&tag_mode_prod
angeben. Das ist großartig, aber was mache ich, wenn ich eine Gruppen-Vars-Datei für diesen Schnittpunkt erstellen muss, der über Schnittpunkt-spezifische Variablen verfügt (dh ich möchte nicht dieselbe Db für Dev und Prod verwenden, aber ich habe auch verschiedene DBs für Boxen mit verschiedenen Funktionen). Ich kann kein kaufmännisches Und-Zeichen in einem Dateinamen verwenden. Wie erstelle ich eine vars-Datei für Gruppen, um nur die Felder anzugeben, die meine gewünschte Schnittmenge treffen?Geben Sie den Schnittpunkt der Gruppen als group_vars-Datei in ansible an
Antwort
Vielleicht beantworte ich deine Frage nicht wirklich, sondern teile einige meiner Erfahrungen mit Ansible.
Zunächst sollten Sie separate Inventare für verschiedene Umgebungen in Betracht ziehen (Sie haben Dev und Prod genannt). Ich habe auch anfänglich mit Einzelinventar angefangen und diesen Ratschlag fand ich absolut erstaunlich: How to Differentiate Staging vs Production.
Die Datenbanken, die Sie als Beispiel verwendet haben, würden wahrscheinlich besser durch separate Variable (d. H. HrDb und acctDb) verwiesen werden.
Anstatt nur einen Link zu veröffentlichen, geben Sie bitte den relevanten Text direkt in Ihre Antwort ein. Wenn diese Verbindung jemals aufhört zu funktionieren, wird Ihre Antwort viel weniger nützlich sein. – Mxx
tue ich, aber das ist alles durch ec2.py mit dynamischen Inventaren in ec2 wie von Ansible docs empfohlen. Ich brauche immer noch einen Weg, um an der Kreuzung zu unterscheiden. – Eli
Ich hatte ein ähnliches Ziel, und ich konnte mir etwas einfallen lassen, das zu funktionieren scheint. Dies beruht auf Marcins Beobachtung, aber ich werde einige Details ausarbeiten. Wenn Sie die Bestände zwischen prod und stg aufgeteilt, dann können Sie folgendes tun ...
In Ihrem prod Inventar definieren die Gruppen:
[prod_website]
#hosts go here...
[website:children]
prod_website
Dann in Ihrem stg Inventar, definieren die analoge Gruppen:
Dann würden Sie in Ihrer group_vars die Gruppenkreuzung vars unter prod_website und stg_website erstellen. Wenn Sie ansible aufrufen und angeben, welches Inventar verwendet werden soll, werden die gewünschten vars der Gruppenkreuzung herangezogen. In Ihren Playbooks können Sie jedoch weiterhin auf die allgemeine Website-Gruppe verweisen, die sowohl in prod als auch in stg vorhanden ist.
- 1. Ansible: Host in mehreren Gruppen
- 2. Geben Sie den Standardwert in der Hibernate-XML-Konfigurationsdatei an.
- 3. Schnittpunkt der Objektverkleinerungsschlüssel festlegen
- 4. Dynamische Gruppen basierend auf IP-Bereich in Ansible-Gruppen
- 5. Wo geben Sie den Generics-Typ an?
- 6. Geben Sie den Werttyp der NSDictionary-Einträge an
- 7. Wie geben Sie 'DEFAULT' als SQL-Parameterwert in ADO.NET an?
- 8. Wie geben Sie einen Listenwert als Variable in einer Inventardatei an?
- 9. Wie geben Sie den Benutzernamen an, den VSSConverter.exe verwenden soll?
- 10. R igraph - Geben Sie den Mindestabstand zwischen den Scheitelpunkten an
- 11. Geben Sie den Suchpfad für DllImport in .NET an
- 12. QT - Geben Sie den DLL-Pfad in pro an. Datei
- 13. f # Schnittpunkt der Listen
- 14. Geben Sie die PostgreSQL-Passwörter in Ansible Playbook ein.
- 15. So geben Sie Befehlszeilenoptionen für den Dienst in TopShelf an
- 16. AddFixedPriceItem: Geben Sie MPN in VariationSpecifics.NameValueList an
- 17. So geben Sie Windows-Anmeldeinformationen in der WCF-Clientkonfigurationsdatei an
- 18. Geben Sie TypeScript-Ausgabedateinamensformat an
- 19. So geben Sie den iperf-Client-Port an
- 20. Restangular - Geben Sie den benutzerdefinierten ID-Schlüssel an
- 21. Geben Sie eine Klassenmitgliedsfunktion als Freund einer anderen Klasse an?
- 22. Ansible - geben Sie jedem Knoten Kontext zum Teilen von Daten
- 23. Finden Sie den Schnittpunkt zweier Linien in Matlab
- 24. Zeigt den Schnittpunkt zweier Ausdrücke
- 25. Schnittpunkt der Linie und Quadrat in JAVA
- 26. Den Schnittpunkt zweier aktiver Datensatzrelationen erhalten, rails
- 27. Geben Sie vim Dateityp in der Befehlszeile an
- 28. Überprüfen Sie den Schnittpunkt zwischen zwei Zeichenfolgen in Python
- 29. So geben Sie den Parameter "realm" für dotnetopenauth lib an
- 30. So geben Sie den Pfad zu einem Cargo.toml an
haben Sie jemals eine Lösung dafür gefunden? –