Manchmal muss ich Probleme reproduzieren, die nur in der Umgebung des Kunden auftreten. Ich könnte virtuelle Maschinen manuell einrichten, um deren Umgebung ausreichend widerzuspiegeln, aber es wäre sehr schön, eine halbautomatische Möglichkeit dafür zu finden.
Mit anderen Worten, ich suche nach etwas, das es mir ermöglicht, zu sagen: „Erstellen Sie eine Umgebung, in der diese Linux-Version läuft und diese PHP-Version installiert ist“ usw. Dann hoffe ich, mich in diese Umgebung einloggen und die Reproduktionsschritte ausführen zu können.
Diese Umgebungen wären natürlich relativ kurzlebig, da die Möglichkeit besteht, dass ich dieselbe Umgebung nie wieder neu erstellen muss, wenn ich dieses spezielle Problem einmal reproduziert habe. Trotzdem wäre es schön, wenn die Umgebungskonfiguration in einem Format wäre, das sich leicht versionieren lässt, falls sie erneut benötigt wird.
Gibt es eine Technologie, die für diese Art von Anwendungsfall geeignet ist?
Dinge, von denen ich gehört habe, die relevant sein könnten
- Proxmox (scheint übertrieben und allein unzureichend)
- Vagrant (könnte allein nicht ausreichen, benötigt möglicherweise auch Konfigurationsmanagement wie Ansible)
- Docker (wird üblicherweise zum Ausführen einzelner Anwendungen verwendet, nicht zum Neuerstellen vollständiger Betriebssystemumgebungen)
Ist eine davon für diesen Anwendungsfall geeignet? Sollte ich nach anderen Optionen suchen?
Antwort1
Ich habe in der Vergangenheit Docker für so ziemlich alles verwendet und es hat einwandfrei funktioniert. Ich würde Ihnen empfehlen, sich das einmal anzuschauen, aber Sie sollten diese Frage besser auf dem Software Recommendation StackExchange stellen.
Antwort2
Ich habe mich letztendlich für Vagrant entschieden, nachdem ich erfahren habe, dass es die Bereitstellung der Maschine auch über Shell-Skripte ermöglicht:https://www.vagrantup.com/intro/getting-started/provisioning.html
Dies scheint mir die Methode mit dem geringsten Aufwand zu sein, mein Ziel zu erreichen, indem ich schnell eine temporäre, spezifische Umgebung getrennt von meiner eigenen einrichte, mit einer einfachen textbasierten Konfiguration, die einer Versionskontrolle unterzogen werden kann.