Es scheint, dass es in der ansible Welt ein bisschen zu viele Möglichkeiten gibt, mit dem Inventar umzugehen, und wir standen vor einigen schwierigen Fragen.Wie kann man Inventar mit mehreren Umgebungen skalierbar und flexibel verwalten?
Wir haben derzeit 4 offizielle Zielumgebungen: Produktion, Staging, Test und lokal (localhost). Jetzt sind sie alle Gruppen von Hosts in einer einzigen inventory.ini, die sich im Root befindet.
Fast die gesamte Infrastruktur wird auf AWS ausgeführt. Die einzige Ausnahme ist, dass einige Entwickler ihre lokale Umgebung auf localhost oder einer lokalen VM ausführen. Alle anderen nicht-persönlichen Umgebungen sind jedoch auf AWS.
Einige Mitarbeiter möchten diese in verschiedene Inventare für jede Umgebung aufteilen, um eine versehentliche Ausführung gegen alle auf einmal zu vermeiden. Ich bin ein bisschen besorgt, dass dies die Wartungskosten erhöhen könnte, und das wird es wahrscheinlich schwieriger machen, mit Werkzeugen wie Ansible Tower, Semamphore oder RunDeck zu arbeiten. Ich möchte auch auf dynamisches ec2-Inventar umstellen, was die Aufteilung weniger interessant macht.
Hier sind einige Fragen, die durch eine optimale Setup zu addresed haben:
- Wie stelle ich eine bestimmte Komponente zu einer bestimmten Umgebung?
- Wie kann ich ein Playbook testen, ohne die Produktion oder das Staging zu beeinflussen?
- welche Standardwert sollte er als halten „hosts: value“ in unserem Playbooks
- was die Standard-Inventar sein sollte, wenn wir mehrere Dateien
- verwenden würden, wie wir etwas gegen die gesamte Infrastruktur (mehrere Vorräte an der bereitstellen können gleiche Zeit)
Unabhängig von meiner Antwort denke ich, dass die Zielumgebung nichts mit einem Playbook zu tun hat. Es sollte immer eine additive Information sein, die Sie explizit angeben sollten. –