0

Angenommen, ich habe eine auffällige CI- und CD-Pipeline mit den Tools, die ich im Fragetitel erwähnt habe.Was ist eine gute Lösung, um Variablen synchron zu halten - Terraform, Chef, Jenkins, Octopus Deploy

Lassen Sie uns auch sagen, dass es Konfigurationsdateien und andere Dinge gibt, die mit Variablen in all diesen Systemen parametrisiert sind. Variablen, die in der Tat manchmal über alle übereinstimmen müssen. Hostnamen, Ports, Verbindungszeichenfolgen usw.

Wie kann ich oder welche Tools verfügbar sind, um diese Variablen an einem einzigen Ort oder zumindest zu halten, stellen Sie sicher, dass sie miteinander synchronisiert bleiben, wenn sie brauchen zu?

Mein bisher bestes Denken ist es, einige automatisierte Tests zu schreiben, aber da die Variablen im Allgemeinen in den Systemen selbst gespeichert sind, fühlt sich das ein wenig klobig an. Ich könnte die Variablen in mehr Config in der Quelle speichern, aber dann sind einige von ihnen sichere Variablen (Produktionspasswörter usw ..) und das wäre auch ein bisschen ein Kompromiss.

Es gibt eine Tonne dieser Variablen und ich kann sehen, dass es ein echtes Problem wird, je mehr ich diesen Weg gehe.

Hat jemand das schon gelöst?

+0

Ist Ihre Konfiguration von Ihrer Software abgekoppelt? Oder backen Sie die Konfiguration direkt in Ihre Binärdateien, ohne sie später in der CI/CD-Pipeline ändern zu können? – Bricktop

+0

Die Config wird in Konfigurationsdateien in Token umgewandelt. – Stimul8d

+0

Das klingt nach einem guten Anwendungsfall für etwas wie Consul - https://www.consul.io/. Sie können sowohl Ihr "Sync" Problem als auch das Speichern von sicheren Variablen lösen. –

Antwort

3

Ihr Konfigurationsmanagementsystem (Chef) sollte für die Installation aller Variablen Ihres CI-Systems zuständig sein. Terraform-Status und andere Datenbanken müssen separat beibehalten werden, aber Ihr CM-System sollte die anderen Tools informieren, "wo die Datenbank für den aktuellen Job lebt".

Es gibt viele verschiedene und vernünftige Möglichkeiten, um Variablen auf verschiedenen Ebenen zu validieren - Chef's Policyfile Zeug versucht, es zu einer Build-Time-Sache zu bewegen, aber das Wichtigste, was Sie tun können, ist versuchen, Unterschiede zu minimieren zwischen Umgebungen. Viele Leute beginnen mit einer sauberen Reihe von Deployment-Phasen, und drei Jahre später ist jeder so wild, wollig und komisch, dass die Bühnen ihren größten Nutzen verloren haben. Ein konsequenter Anwalt für "alles ist überall gleich, auch wenn es härter und teurer ist" ist ein wichtiger politischer Job.

Verwandte Themen